如何触发Obsidian中的元素?

动作开发 · 785 次浏览
Sunsh 创建于 2023-07-12 10:46

在Obsidian中,打开控制台,获取到某按钮的元素选择器后,虽然Obsidian有丰富的插件库,但还没有Quicker 的相应插件,在没有插件的加持下,该怎么实现触发该元素的效果呢?

如题、如下图

CL 最后更新于 2023/7/12

回复内容
CL 2023-07-12 11:11
#1

帖子标题请简短概要一些,不然在列表里会有折行影响查看。

下面的信息来自网友Moy,你可以看看有没有办法通过命令来触发想要的功能:

https://vinzent03.github.io/obsidian-advanced-uri/actions/commands 

Sunsh 回复 CL 2023-07-12 11:25 :

好像是不行,或者是我没看懂🤣🤣

另外,Quicker的插件好移植到Obsidian上吗,大佬,有打算移植下嘛🤣🤣

CL 回复 Sunsh 2023-07-12 11:54 :

quicker的插件需要跨本机通信,electron似乎是不支持的

Sunsh 回复 CL 2023-07-12 12:19 :

哦哦,好吧

H-D-G 2023-07-12 11:56 :

如果你有安装Editing Toolbar插件的话,用这个子程序运行这个命令:

Sunsh 回复 H-D-G 2023-07-12 12:54 :

这样吗


H-D-G 回复 Sunsh 2023-07-12 13:02 :

id是 editing-toolbar:workplace-fullscreen-focus

H-D-G 最后更新于 2023-07-12 13:03
Sunsh 回复 H-D-G 2023-07-12 13:08 :

哦哦,这是通过这个来实现的啊


Sunsh 回复 H-D-G 2023-07-12 13:08 :

假如说,我是想运行document.querySelector("body > div.app-container > div.horizontal-main-container > div > div.workspace-split.mod-vertical.mod-root > div > div.workspace-tab-header-container > div.sidebar-toggle-button.mod-right > div").click();

这个该怎么实现啊?

H-D-G 回复 Sunsh 2023-07-12 13:12 :

这个要写插件,qk没接口

H-D-G 回复 Sunsh 2023-07-12 13:12 :

那个命令不行吗?

Sunsh 回复 H-D-G 2023-07-12 13:13 :

哦哦,好吧,多谢了🧡🧡🧡

Sunsh 回复 H-D-G 2023-07-12 13:18 :

可以,可以实现我的目的。

现在我知道怎么查找ID来执行命令了,但是一开始的「Editing Toolbar: workplace-Fullscreen」,这个是想让我在子程序的哪个位子执行的?

另外,再请教下,子程序演示界面的截图皮肤挺好的看,这个是哪个主题啊,方便分享下吗?

H-D-G 回复 Sunsh 2023-07-12 13:25 :

主题:Blue Topaz
另一个问题没看懂😂

Sunsh 回复 H-D-G 2023-07-12 13:28 :

Blue Topaz我也装了,但是我看你这个有透明效果啊🤣🤣

另一个问题我是想请教,「Editing Toolbar: workplace-Fullscreen」这个命令,是该填到子程序里面的哪个位置的?

Sunsh 最后更新于 2023-07-12 13:30
H-D-G 回复 Sunsh 2023-07-12 13:30 :

Editing Toolbar: workplace-Fullscreen是命令的name,子程序执行命令需要命令id(参考上面文本窗口的截图)
可以用这个来查找id

Sunsh 回复 H-D-G 2023-07-12 13:33 :

OK,我懂了,我还以为那是个命令,可以直接运行的🤣🤣。

原来Local REST API还可以和其他插件联动啊,这插件真不错。感谢释疑🧡🧡🧡

Moy 2023-07-12 14:17
#3

帮崔大补充一下,楼上 HDG 的是一种方案,另一个插件(Advance URI)也可以让 QK 给 Obsidian 传递消息。


Obsidian 本身支持用运行 Obsidian://xxx 的方式来执行一些操作(详见 Using Obsidian URI - Obsidian Help),这个插件可以用类似的方式来让 Obsidian 直接执行特定命令(Command)。

插件地址:Vinzent03/obsidian-advanced-uri: Advanced modes for Obsidian URI (github.com)


比如你想要去模拟“激活某个按钮”,但大部分时候按钮也就是执行特定的命令,所以干脆就让 ob 执行这个命令就可以。


比如说我想执行这个「用默认程序打开」(Open in default app)的操作:



那么先用 Advanced URI 插件提供的查找 Command ID 的指令 (Copy URI for command)


第一步会让你选择操作的文件,因为我们只是执行操作,不针对特定文件,可以直接选第一项



然后搜索并选择我们要执行的指令(Open in default app)



插件就会在剪贴板内粘贴执行这个操作需要的 URI:

obsidian://advanced-uri?vault=Obsinote&commandid=open-with-default-app%253Aopen


然后你直接用 QK 来「打开或运行」这串地址就可以啦。



相当于是 Advanced URI 这个插件帮你做了一个传递消息的传令兵。

事实上也不光 QK 能这么调用,你直接用「运行」去打开这传地址也是通用的。


Moy 最后更新于 2023-07-12 14:20
Sunsh 回复 Moy 2023-07-12 14:28 :

OK,试了下,确实又是另一种解法,多谢大佬🧡🧡

Moy 回复 Sunsh 2023-07-12 14:50 :

嗯,我也学到了一种新方法,多亏你提的问题哈哈 

回复主贴