在chrome中,我的userscript导致错误
ReferenceError: jQuery is not defined但是@require这一行包含jquery。至少我知道greasemonkey是这样的( chrome不支持吗?)
如果我删除一个函数调用的函数(使$= jQuery),我会得到错误$ is not defined。在firefox/greasemonkey中它运行正常
// ==UserScript==
// @name Detect Duplicate IDs
// @namespace jkbfvsdjkzsvfshefsdvh
// @description Alerts you when more than one ID is on a page
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @include *
// @version 1
// @grant
// ==/UserScript==
//using localhost in @include doesn't seem to work
if(location.hostname!='localhost')
return;
//Ignore above for console.
(function($){
$(function() {
var checkDupeIDs = function () {
var dupes = [];
var ids = [];
$('[id]').each(function(i,e){ids.push(e.id)});
var len = ids.length;
for(i=0; i<len; ++i) {
if(dupes.indexOf(ids[i])!=-1)
continue;
for(n=i+1; n<len; ++n) {
if (ids[n]==ids[i]) {
dupes.push(ids[n]);
break;
}
}
}
if (dupes.length!=0) {
for(i=0; i<dupes.length; ++i)
console.warn('Multiple IDs #' + dupes[i]);
alert(dupes.join('\n'));
}
}
var jHtml = $.html;
$.html = function () {
checkDupeIDs();
return jHtml.call(this, arguments);
}
checkDupeIDs();
})
})(jQuery);发布于 2013-04-10 21:59:19
直接开箱即用,Chrome不能很好地支持Greasemonkey脚本(Out-of-date table,Out-of-date page)。例如,@require指令不起作用。
要享受Firefox Greasemonkey脚本几乎完全的兼容性,请安装the Tampermonkey Extension for Chrome。你的脚本应该能在坦帕猴中工作。
此外,为了避免在火狐中出现问题,不要将@grant留空。如果不使用其他方法,请使用@grant GM_addStyle。
发布于 2013-04-10 21:28:55
检查两个最重要的东西:
的任何其他js文件之前包含了jQuery文件
https://stackoverflow.com/questions/15927113
复制相似问题