您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Direct link functionality for Google Drive
当前为
// ==UserScript== // @name Google Drive Direct Links // @version 0.2 // @description Direct link functionality for Google Drive // @author Josh Bjelovuk // @match *://drive.google.com/* // @grant none // @namespace https://greasyfork.org/users/11679 // ==/UserScript== var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { var node = mutation.addedNodes[i]; setClickEvent(node); } }); }); var content = document.getElementById('drive_main_page'); if (content) observer.observe(content, { childList: true, subtree: true }); var linkObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { var node = mutation.addedNodes[i]; if (node.dataset.target === 'linkBubble') { var link = node.getElementsByTagName('input')[0]; var directLink = link.cloneNode(true); directLink.value = directLink.value.slice(0, directLink.value.indexOf('&')).replace('open', 'uc'); directLink.onclick = function() { this.select(); }; var label = document.createElement('p'); label.style.cssText = "margin-top: 10px; margin-bottom: 10px;" label.textContent = 'Direct link:'; link.parentNode.insertBefore(directLink, link.nextSibling); link.parentNode.insertBefore(label, link.nextSibling); break; } } }); }); function setClickEvent(elem) { if (elem.classList && (elem.classList.contains('a-v-hc-m') || elem.classList.contains('k-ji-ae'))) { elem.addEventListener('contextmenu', adjustMenu); linkObserver.observe(elem.parentNode, { childList: true }); } else { for (var i = 0; i < elem.children.length; i++) setClickEvent(elem.children[i]); } } function adjustMenu() { var fileId = this.dataset.id; setTimeout(function() { var menus = document.getElementsByClassName('j-A'); for (var i = 0; i < menus.length; i++) { var menu = menus[i]; if (menu.style.display !== 'none') { var existing = document.getElementById('DLID'); if (existing) existing.remove(); var cloned = menu.children[7].cloneNode(true); cloned.id = 'DLID'; cloned.getElementsByClassName('a-D-P')[0].innerHTML = 'Open direct'; cloned.onmouseleave = cloned.onmouseenter = function() { this.classList.toggle('j-D-pc'); }; cloned.onclick = function(){ window.open('https://drive.google.com/uc?id='+ fileId); }; menu.insertBefore(cloned, menu.children[8]); break; } } }); }