想用 quicker 获取。
能不能通过 API 获取“当前活动文档的 ID”?
相关帖子
-
这个可以不?
// 打印显示内容的文档的id document.querySelectorAll('div.fn__flex-1.protyle:not(.fn__none) span.protyle-breadcrumb__item.protyle-breadcrumb__item--active').forEach( file_ele => console.log(file_ele.getAttribute("data-node-id")) ) // 打印所有页签文档的id document.querySelectorAll('div.fn__flex-1.protyle span.protyle-breadcrumb__item.protyle-breadcrumb__item--active').forEach( file_ele => console.log(file_ele.getAttribute("data-node-id")) )
1 回复 - 其他回帖
-
应该把
.protyle-breadcrumb__item--active
这个去掉,在聚焦模式下面包屑没有焦点,获取失败。不过这种写法不兼容手机,我通常用下面的方法:
// 获取当前文档的protyle function getProtyle() { try { if(document.getElementById("sidebar")) return siyuan.mobile.editor.protyle; const currDoc = siyuan?.layout?.centerLayout?.children.map(item=>item.children.find(item=>item.headElement?.classList.contains('item--focus') && item.panelElement.closest('.layout__wnd--active'))).find(item=>item); return currDoc?.model.editor.protyle; } catch(e) { console.error(e); return null; } } // 然后,获取当前文档的id可以这样(注意,这里我用了.protyle-title选择符,也是为了兼容手机版) const currDocBlockId = getProtyle().wysiwyg.element?.querySelector('.protyle-title')?.dataset?.nodeId;
-
仅靠 quicker 的话没有十分可靠的方案,可以考虑安装“运行 javascript”插件,然后参考这个动作思源同步感知与远程管理 - by 浅沧 - 动作信息 - Quicker 给思源发 js 代码,通过插件在思源内运行 js 代码并返回结果
1 回复 -
- 查看全部回帖
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于