全屏和刷新按钮
// js片段 // 通过快捷键(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); } // 添加全屏按钮 function addBtnFullScreen(perv_btn) { let barMode = document.getElementById(perv_btn); barMode.insertAdjacentHTML( "afterend", '<div id="fullscreen_page_btn" class="toolbar__item ariaLabel" aria-label="全屏"></div>' ); let settingBtn = document.getElementById("fullscreen_page_btn"); settingBtn.innerHTML = `<svg><use xlink:href="#iconFullscreen"></use></svg>`; settingBtn.addEventListener( "click", function (e) { if (!document.fullscreenElement) { document.documentElement.requestFullscreen(); } else { if (document.exitFullscreen) { document.exitFullscreen(); } } } ); return "fullscreen_page_btn"; } // 添加按钮, 并设置点击事件 // 添加 js代码片段 function addBtnJsSnippets(perv_btn) { let barMode = document.getElementById(perv_btn); barMode.insertAdjacentHTML( "afterend", '<div id="js_barSnippets_simulate_btn" class="toolbar__item ariaLabel" aria-label="JS代码片段"></div>' ); let settingBtn = document.getElementById("js_barSnippets_simulate_btn"); settingBtn.innerHTML = `<svg><use xlink:href="#iconCode"></use></svg>`; settingBtn.addEventListener( "click", function (e) { // 打开设置 openSettingPage(); // 点击外观 // 找到包含 data-name="appearance" 的 <li> 元素 var btn = document.querySelector('li[data-name="appearance"]'); btn.click(); // 点击 设置 // 获取按钮元素 btn = document.getElementById('codeSnippet'); btn.click(); // 点击 js // 获取按钮元素 setTimeout(() => { btn = document.querySelector('[data-type="js"]'); btn.click(); }, 200); } ); return "js_barSnippets_simulate_btn" } // 添加按钮, 并设置点击事件 // 添加 重新加载按钮 function addBtnRefresh(perv_btn) { let barMode = document.getElementById(perv_btn); barMode.insertAdjacentHTML( "afterend", '<div id="reload_page_btn" class="toolbar__item ariaLabel" aria-label="重新加载"></div>' ); let settingBtn = document.getElementById("reload_page_btn"); settingBtn.innerHTML = `<svg><use xlink:href="#iconRefresh"></use></svg>`; settingBtn.addEventListener( "click", function (e) { // 打开设置 openSettingPage(); // 点击外观 // 找到包含 data-name="appearance" 的 <li> 元素 var btn = document.querySelector('li[data-name="keymap"]'); btn.click(); // 点击 设置 // 获取按钮元素 btn = document.getElementById('keymapRefreshBtn'); btn.click(); } ); return "reload_page_btn" } /* 重新加载会有延时, 所以需要等待300ms之后再添加按钮 */ setTimeout(() => { js_btn_str = addBtnJsSnippets("plugin_Calendar-heatmap_0"); js_btn_str = addBtnFullScreen("plugin_Calendar-heatmap_0"); addBtnRefresh("barDock"); }, 300);
按照这个大佬的方法添加了个全屏按钮(ChatGPT 写的,不知道刷新按钮怎么删掉了,那就一起吧)
一个在右上角的倒计时(也是 ChatGPT 写的,大家看着改吧)
// 创建倒计时功能 function startCountdown(targetDate) { // 计算剩余天数的函数 function calculateDaysLeft() { let currentDate = new Date(); let differenceInTime = targetDate.getTime() - currentDate.getTime(); let daysLeft = Math.ceil(differenceInTime / (1000 * 3600 * 24)); // 将时间差转换为天数 return daysLeft; } // 每天更新倒计时显示 function updateCountdown() { let daysLeft = calculateDaysLeft(); let countdownElement = document.getElementById("countdown_days_display"); if (countdownElement) { countdownElement.innerText = `距离2025年高考剩余 ${daysLeft} 天`; } else { console.warn("找不到 countdown_days_display 元素"); } } // 首次插入倒计时显示元素到 protyle-breadcrumb__bar--nowrap 元素旁边 function insertCountdownElement() { let breadcrumbBar = document.querySelector('#AsriPluginsIconsDivider'); if (breadcrumbBar) { breadcrumbBar.insertAdjacentHTML( "afterend", `<div id="countdown_days_display" style="font-size: 16px; color: #454545; margin-right: 14px; margin-top: 7px;"></div>` ); updateCountdown(); // 插入后更新一次倒计时显示 } else { console.error("找不到 protyle-breadcrumb__bar--nowrap 元素"); } } // 每隔2秒检测倒计时元素是否存在 let checkInterval = setInterval(() => { let countdownElement = document.getElementById("countdown_days_display"); // 如果倒计时元素不存在,则重新插入并更新倒计时 if (!countdownElement) { insertCountdownElement(); console.log("倒计时元素不存在,重新插入"); } else { console.log("倒计时元素已存在,停止检测"); clearInterval(checkInterval); // 如果找到了元素,停止检测 } }, 2000); // 每2秒检测一次 // 设置定时器,每天更新一次倒计时 setInterval(updateCountdown, 24 * 60 * 60 * 1000); // 每24小时更新一次 } // 示例:设置目标日期(这里设置为2024年12月31日) let targetDate = new Date('2025-6-7'); startCountdown(targetDate);
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于