在 chrome 中,我的用户脚本导致错误
ReferenceError: jQuery is not defined
但是@require 行包含jquery。至少我知道它与greasemonkey(铬不支持吗?)
如果我删除一个函数调用的函数(这使得 $ = jQuery)我得到错误 $ 未定义。在 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);