-
思源笔记
22337 引用 • 89378 回帖
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
-
Q&A
8112 引用 • 37001 回帖 • 160 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
相关帖子
-
wilsons •付费者 捐赠者
默认全屏可以实现,但思源的全屏(alt+y)是基于文档的,即如果你没打开任何文档是无法全屏的。
这一点你测试下就知道了,比如把所有文档关闭,然后按 alt+y 是不会全屏的。
所以,要想软件打开时全屏,你关闭软件的时候文档不能全关闭,至少留一个文档不关。
否则,打开软件时全屏失效。
如果这样的逻辑可以满足你的需求,那么下面的代码即可实现,打开软件时自动全屏。
放到 js 代码片段即可。
(async ()=>{ await whenElementExist(async ()=>{ const currentTab = document.querySelector('.layout__center li[data-type="tab-header"].item--focus'); if(!currentTab) return false; const dataId = currentTab.dataset.id; if(!dataId) return false; const currentContent = document.querySelector('.layout__center .fn__flex-1.protyle[data-id="'+dataId+'"]'); if(!currentContent) return false; await sleep(100); currentContent.classList.add("fullscreen"); window.siyuan.editorIsFullscreen = true; return true; }); // 延迟执行 function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } // 等待元素渲染完成后执行 function whenElementExist(selector) { return new Promise(resolve => { const checkForElement = () => { let element = null; if (typeof selector === 'function') { element = selector(); } else { element = document.querySelector(selector); } if (element) { resolve(element); } else { requestAnimationFrame(checkForElement); } }; checkForElement(); }); } })();
-
- 其他回帖
-
没啥好的, 我从其他地方抄的
// 通过快捷键(alt + p), 打开配置页面 function openSettingPage() { let keyInit = { ctrlKey: false, altKey: true, metaKey: false, shiftKey: false, key: 'P', keyCode: 80 } keyInit["bubbles"] = true; let keydownEvent = new KeyboardEvent('keydown', keyInit); document.getElementsByTagName("body")[0].dispatchEvent(keydownEvent); let keyUpEvent = new KeyboardEvent('keyup', keyInit); document.getElementsByTagName("body")[0].dispatchEvent(keyUpEvent); }
-
默认全屏可以实现,但思源的全屏(alt+y)是基于文档的,即如果你没打开任何文档是无法全屏的。
这一点你测试下就知道了,比如把所有文档关闭,然后按 alt+y 是不会全屏的。
所以,要想软件打开时全屏,你关闭软件的时候文档不能全关闭,至少留一个文档不关。
否则,打开软件时全屏失效。
如果这样的逻辑可以满足你的需求,那么下面的代码即可实现,打开软件时自动全屏。
放到 js 代码片段即可。
(async ()=>{ await whenElementExist(async ()=>{ const currentTab = document.querySelector('.layout__center li[data-type="tab-header"].item--focus'); if(!currentTab) return false; const dataId = currentTab.dataset.id; if(!dataId) return false; const currentContent = document.querySelector('.layout__center .fn__flex-1.protyle[data-id="'+dataId+'"]'); if(!currentContent) return false; await sleep(100); currentContent.classList.add("fullscreen"); window.siyuan.editorIsFullscreen = true; return true; }); // 延迟执行 function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } // 等待元素渲染完成后执行 function whenElementExist(selector) { return new Promise(resolve => { const checkForElement = () => { let element = null; if (typeof selector === 'function') { element = selector(); } else { element = document.querySelector(selector); } if (element) { resolve(element); } else { requestAnimationFrame(checkForElement); } }; checkForElement(); }); } })();
1 回复1 操作wilsons 在 2024-08-26 18:50:19 更新了该回帖 - 查看全部回帖