您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Redirect Google Docs to correct user Account
// ==UserScript== // @name Google Docs User Account Redirect // @description Redirect Google Docs to correct user Account // @version 0.4 // @author Torkelicous // @icon https://ssl.gstatic.com/docs/documents/images/kix-favicon7.ico // @include https://docs.google.com/* // @run-at document-start // @grant GM_setValue // @grant GM_getValue // @license MIT // @namespace https://greasyfork.org/users/1403155 // ==/UserScript== (function() { let wantedAccount = GM_getValue('wantedAccount', 1) let isUIVisible = GM_getValue('isUIVisible', true); let guiContainer; let toggleButton; // Check if we should show UI (not on document/d URLs) var currentUrl = window.location.href; var shouldShowUI = !currentUrl.includes('/document/d/'); // Create toggle function createToggleButton() { toggleButton = document.createElement('button'); toggleButton.textContent = isUIVisible ? '➖' : '➕'; toggleButton.style.position = 'fixed'; toggleButton.style.bottom = '10px'; toggleButton.style.left = '70px'; toggleButton.style.zIndex = '1000'; toggleButton.style.padding = '5px'; toggleButton.style.cursor = 'pointer'; toggleButton.style.backgroundColor = 'grey'; toggleButton.style.border = '1px solid grey'; toggleButton.style.borderRadius = '3px'; toggleButton.style.fontSize = '16px'; toggleButton.onclick = function() { if (isUIVisible) { guiContainer.style.display = 'none'; toggleButton.textContent = '➕'; } else { guiContainer.style.display = 'block'; toggleButton.textContent = '➖'; } isUIVisible = !isUIVisible; GM_setValue('isUIVisible', isUIVisible); }; document.body.appendChild(toggleButton); } // GUI for wantedAccount function createGUI() { // Don't create UI if we're on a document/d URL if (!shouldShowUI) { return; } guiContainer = document.createElement('div'); guiContainer.style.position = 'fixed'; guiContainer.style.bottom = '10px'; guiContainer.style.left = '110px'; guiContainer.style.padding = '10px'; guiContainer.style.backgroundColor = 'DarkGrey'; guiContainer.style.border = '1px solid grey'; guiContainer.style.zIndex = '1000'; guiContainer.style.display = isUIVisible ? 'block' : 'none'; // Set initial display based on saved state const label = document.createElement('label'); label.textContent = 'Account: '; guiContainer.appendChild(label); const input = document.createElement('input'); input.type = 'number'; input.min = '0'; input.max = '9'; input.style.width = '30px'; input.value = wantedAccount; guiContainer.appendChild(input); const button = document.createElement('button'); button.textContent = 'Save'; button.style.marginLeft = '5px'; button.onclick = function() { GM_setValue('wantedAccount', input.value); location.reload(); }; guiContainer.appendChild(button); document.body.appendChild(guiContainer); createToggleButton(); } window.addEventListener('load', createGUI); // Redirect logic for Google Docs // Skip redirect if URL contains /document/d/ pattern if (currentUrl.includes('/document/d/')) { return; } var urlPattern = /^https:\/\/docs\.google\.com\/document\/u\/(\d+)\//; var match = currentUrl.match(urlPattern); if (match) { var currentAccount = match[1]; if (currentAccount != wantedAccount) { var newUrl = currentUrl.replace(/\/u\/\d+\//, `/u/${wantedAccount}/`); window.location.replace(newUrl); } } else { // only if it's not a /document/d/ URL if (currentUrl.includes('docs.google.com/document/') && !currentUrl.includes('/u/') && !currentUrl.includes('/document/d/')) { var newUrl = currentUrl.replace('docs.google.com/document/', `docs.google.com/document/u/${wantedAccount}/`); window.location.replace(newUrl); } } })();