您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
On a script info page it shows its https:// icon from the script meta block
当前为
// ==UserScript== // @name GreasyFork scripts icon (https) // @namespace wOxxOm.scripts // @description On a script info page it shows its https:// icon from the script meta block // @icon https://icons.iconarchive.com/icons/custom-icon-design/mono-general-1/64/information-icon.png // @version 1.0.4 // @author wOxxOm // @include /^https://greasyfork\.org/(.*?/)?scripts/\d+.*$/ // @run-at document-start // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // ==/UserScript== var scriptID = location.href.match(/scripts\/(\d+)/)[1]; var iconsrc = GM_getValue(scriptID); if (iconsrc && iconsrc.match(/^https:\/\//)) addIcon(iconsrc); else GM_xmlhttpRequest({ method: 'GET', url: location.href.replace(/(scripts\/\d+[^/]+)(\/.*)?$/,'$1/code/1.user.js'), timeout: 5000, onprogress: parseIcon, onload: parseIcon }); function parseIcon(r) { if (!iconsrc) { var m = r.responseText.match(/\n\s*\/\/\s+@icon\s+(https:\/\/.*?)[\s\r\n]/); if (m) addIcon(m[1], r); } } function addIcon(url, response) { var h2 = document.querySelector('#script-info header h2'); h2 ? __add(h2) : __wait(); function __add(h2) { if (!h2) h2 = document.querySelector('#script-info header h2'); if (h2) { var div = h2.insertAdjacentHTML('afterbegin','<div style="\ position: absolute;\ width: 80px;\ margin-left: calc(-80px - 1ex);\ display: inline-block;\ text-align: right"></div>') var img = h2.firstChild.appendChild(document.createElement('img')); img.style.maxWidth = img.style.maxHeight = '64px'; img.style.setProperty('width', 'auto'); img.style.setProperty('height', 'auto'); img.src = url; iconsrc = url; GM_setValue(scriptID, iconsrc) if (response && (response.readyState != 4)) // not DONE loading response.abort(); } } function __wait() { var ob = new MutationObserver(function(mutations){ for (var i=0, ml=mutations.length, m; (i<ml) && (m=mutations[i]); i++) { if (m.target.localName == 'h2') { __add(); ob.disconnect(); return; } } }); ob.observe(document, {subtree:true, childList:true}); } }