// ==UserScript==
// @name Any jQuery,页面注入jQuery,方便控制台调试代码
// @namespace http://bbs.91wc.net/any-jquery.htm
// @version 0.3.0
// @description write once run anywhere,注入jQuery,方便控制台调试代码,这是增强版,原始版请参考v0.2.1
// @author Wilson
// @match http*://*/*
// @require https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js
// @resource jquery https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js
// @grant unsafeWindow
// @grant GM_getResourceText
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @grant GM_setValue
// @grant GM_getValue
// @downloadURL none
// ==/UserScript==
//jQuery注入成功后执行
function afterInject() {
//Your codes here
//你也可以像这样向页面中写全局变量或函数
//_g.a="test a";
//_g.b = function(){
// console.log("test b");
//}
}
function initJQ(){
//初始化_jq变量
_g._jq = _g.jQuery;
_g._jq.version=_g._jq.fn.jquery;
};
function initMyInfo(){
//脚本信息
_g.myinfo = {};
_g.myinfo.name=GM_info.script.name;
_g.myinfo.ver=GM_info.script.version;
_g.myinfo.jqurl=GM_info.script.resources[0].url;
};
function injectJquery(){
if(_g._jq === null){
setTimeout(function(){
//动态设置jQuery
var jq_code = GM_getResourceText('jquery');
$("body").append('');
//初始化_jq变量
initJQ();
//call afterInject
afterInject();
}, 0);
} else {
//初始化_jq变量
initJQ();
//call afterInject
afterInject();
}
};
//防冲突
this.$ = this.jQuery = jQuery.noConflict(true);
//注入jQuery和全局变量_g
$("body").append(``);
//注入脚本信息
initMyInfo();
//注入jQuery
var __jq_switch = GM_getValue("__jq_switch")||"open";
if(__jq_switch=="open"){
injectJquery();
}
//开关
var jquerySwitchMenu =function(type, callback){
var closeMenu, closeCallback = function(){
if(callback) callback("close");
if(closeMenu) GM_unregisterMenuCommand(closeMenu);
openMenu = GM_registerMenuCommand("立即注入", openCallback);
}
var openMenu, openCallback = function(){
if(callback) callback("open");
if(openMenu) GM_unregisterMenuCommand(openMenu);
closeMenu = GM_registerMenuCommand("取消注入", closeCallback);
}
if(type==="open"){
closeMenu=GM_registerMenuCommand("取消注入", closeCallback);
} else {
openMenu=GM_registerMenuCommand("立即注入", openCallback);
}
};
jquerySwitchMenu(__jq_switch, function(type){
GM_setValue("__jq_switch", type);
if(type=="open"){
injectJquery();
alert("注入成功");
}else{
alert("取消成功,下次刷新生效");
}
});