您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Brings back visual last edit text in drive apps due to M3 migration by Google.
// ==UserScript== // @name Restore Revision Time Visual Text in Google Apps // @version 1.2 // @description Brings back visual last edit text in drive apps due to M3 migration by Google. // @author ZachTheDev // @match https://docs.google.com/document* // @match https://docs.google.com/presentation* // @match https://docs.google.com/spreadsheets* // @namespace https://gf.qytechs.cn/users/1038934 // ==/UserScript== (function() { function addBackRevisionVisualText() { const escapeHTMLPolicy = trustedTypes.createPolicy("use-raw-string", { createHTML: (string) => string, }); const revisionButtonElement = document.getElementById("docs-revisions-appbarbutton"); var revisionTextFromButton = revisionButtonElement.getAttribute("data-tooltip"); const menubarElement = document.getElementById("docs-menubar"); const revisionVisualTextHTML = "<div id=\"revisionVisualText\" class=\"menu-button goog-control goog-inline-block\" role=\"menuitem\" style=\"background-color: transparent;text-decoration: underline;\" data-tooltip=\"Open version history\"></div>"; const rangeForRevisionVisualTextHTML = document.createRange(); const fragmentForRevisionVisualTextHTML = rangeForRevisionVisualTextHTML.createContextualFragment(escapeHTMLPolicy.createHTML(revisionVisualTextHTML)); menubarElement.appendChild(fragmentForRevisionVisualTextHTML); const revisionVisualTextElement = document.getElementById("revisionVisualText"); const setAttributeWatcher = revisionButtonElement.setAttribute; revisionButtonElement.setAttribute = (key, value) => { revisionTextFromButton = revisionButtonElement.getAttribute("data-tooltip"); revisionVisualTextElement.innerHTML = escapeHTMLPolicy.createHTML(revisionTextFromButton); setAttributeWatcher.call(revisionButtonElement, key, value); }; revisionVisualTextElement.addEventListener("mousedown", function (event) { revisionButtonElement.dispatchEvent(new MouseEvent("mousedown")); revisionButtonElement.classList.remove("jfk-button-hover"); revisionButtonElement.dispatchEvent(new MouseEvent("mouseup")); event.stopPropagation(); // fixes bug where menus would open on hover after first click of the revisionVisualTextElement }); revisionButtonElement.addEventListener("mouseenter", (event) => {revisionButtonElement.classList.add("jfk-button-hover");}, false); } addBackRevisionVisualText(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址