🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

Greasy Fork is available in English.

📂 缓存分发状态(共享加速已生效)
🕒 页面同步时间:2026/01/18 07:24:03
🔄 下次更新时间:2026/01/18 08:24:03
手动刷新缓存

Userscripts show includes

Show includes for scripts on userscripts.org

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

// Recent changes
// 1.0.5           Added script update checker
// 1.0.6           Minor fix
// 1.1.0           Added "Stop update" button to the userscripts.com main menu while updating
// 1.1.1           Bug fix in update checker
// 1.1.2           Bug fix in update checker
// 1.1.3           Bug fix in node handling
// 1.1.4           Update checker is now only available for logged in user due to ads display problem
// 1.2.0           Update checker is now also working for not logged in users
// 1.2.1           Bugfix for empty search results
// 1.2.2           Fix for the userscripts.org update (all source lines are indented now)
// 1.3.0           Script is handling the new ad on the userscripts source page
// 1.4.0           Clicking into the userscripts.org search textbox suspends the update
// 1.4.1           Now includes version 0.6.0 of SVC Script Version Checker
// 1.4.2           Minor bugfix
// 1.4.3           Fix for new userscripts.org design ... ad has been added at the bottom of the source page
// 1.4.4           Bugfix: Update is stopped before you leave the /scripts page so using the back button will not execute two parallel updates
// 1.5.0           Taking new userscript.org design into account
//
// ==UserScript==
// @name           Userscripts show includes
// @namespace      http://userscripts.org/users/75950
// @description    Show includes for scripts on userscripts.org
// @include        http://userscripts.org/scripts
// @include        http://userscripts.org/scripts?*
// @include        http://userscripts.org/scripts/search?*
// @version        1.5.0
// ==/UserScript==

var theScripts = Array();
var theLinks = Array();
var theScriptMeats = Array();
var currentscript = 0;
var scriptcount = 0;
var oldHeading;
var newMenuEntry;
var theMainMenu;
var activeSuspend=false;

function DoRequest() {
	GM_xmlhttpRequest({
	    method: 'GET',
	    url: 'http://userscripts.org/scripts/review/'+theScripts[currentscript],
	    headers: {
	        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
	        'Accept': 'text/html',
	    },
	    onload: function(responseDetails) {
	    	var newelem=document.createElement('div');
	        newelem.innerHTML=responseDetails.responseText;
	        newelem.style.display='none';
		if(newelem.getElementsByClassName('ad')[0]!=undefined) newelem.getElementsByClassName('ad')[0].innerHTML='';
		if(newelem.getElementsByClassName('ad bottom')[0]!=undefined) newelem.getElementsByClassName('ad bottom')[0].innerHTML='';
	        document.getElementsByTagName('body')[0].appendChild(newelem);
	        newelem=document.getElementById('source');
	        insertIncludes(newelem.innerHTML);
	        newelem.parentNode.removeChild(newelem);
	    }
	});
}

function insertIncludes(theSource) {
    if(!activeSuspend) {
	    var theMeat = document.createElement('p');
	    theMeat.innerHTML='<b>Includes</b>';
	    theScriptMeat[currentscript].appendChild(theMeat);
	    var theLines = theSource.split('\n');
	    for(i=0; i<theLines.length; i++) {
	    	theLines[i]=theLines[i].replace(/^\s+|\s+$/, "");
	        if(theLines[i].indexOf('// @include')==0) {
	            // insert a paragraph for each include line
	            var theMeat = document.createElement('p');
	            theMeat.innerHTML=theLines[i].substring(11).replace(/^\s+|\s+$/, "");
	            theScriptMeat[currentscript].appendChild(theMeat);
	        }
	    }
	    currentscript++;
	    if(currentscript<scriptcount) {
	        var theHeading=document.getElementById('content').getElementsByTagName('th')[0];
	        theHeading.innerHTML=oldHeading+' (Updating script '+(currentscript+1)+' of '+scriptcount+')';
	        DoRequest();
	    } else {
	        SuspendUpdate();
	    }
    }
}

function SuspendUpdate() {
        var theHeading=document.getElementById('content').getElementsByTagName('th')[0];
        theHeading.innerHTML=oldHeading;
        theMainMenu.removeChild(newMenuEntry);
	document.getElementsByName('q')[0].removeEventListener('click',HandleTextboxClick, false);
}

function HandleTextboxClick(event) {
	currentscript=scriptcount;
	activeSuspend=true;
	SuspendUpdate();
	event.stopPropagation();
	event.preventDefault();
}

window.addEventListener(
  'load',
  function () {
    document.getElementsByName('q')[0].addEventListener('click',HandleTextboxClick, false);
    theLinks = document.getElementsByClassName('title');
    scriptcount = theLinks.length;
    if(scriptcount>0) {
        theScriptMeat = document.getElementsByClassName('script-meat');
        for(i=0; i<scriptcount; i++) {
            theScripts.push(theLinks[i].href.substring(36));
        }
        var theHeading=document.getElementById('content').getElementsByTagName('th')[0];
        oldHeading=theHeading.innerHTML;
        theHeading.innerHTML=oldHeading+' (Updating script '+(currentscript+1)+' of '+scriptcount+')';
        theMainMenu = document.getElementById('mainmenu');
        newMenuEntry = document.createElement('li');
        newMenuEntry.innerHTML = '<a id="stopupdate" href="#" rel="nofollow">Stop update</a>';
        theMainMenu.appendChild(newMenuEntry);
        newMenuEntry.addEventListener('click',
           function(event) {
              event.preventDefault();
              currentscript=scriptcount;
              activeSuspend=true;
              SuspendUpdate();
           }, false);
        DoRequest();
    }
  },
true);

window.addEventListener(
  'unload',
  function () {
      currentscript=scriptcount;
      activeSuspend=true;
      SuspendUpdate();
  },
true);