2012-08-07 65 views
3

所以我的控制台给我这个消息 -jQuery的与Tampermonkey

The page at https://en.wikibooks.org/wiki/Vehicle_Identification_Numbers_(VIN_codes)/GM/VIN_Codes ran insecure content from http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js. 
jquerified: true 
ERROR: Execution of script 'GMVinCodeScraper' failed! $ is not defined 
ReferenceError: $ is not defined 
    at getGMCodes (eval at <anonymous> (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21)))) 
    at Function.eval (eval at <anonymous> (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21)))) 
    at N (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21))) 
    at l (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21))) 
    at chromeEmu.extension.onRequest.addListener.Z (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21))) 
    at W (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21))) 

在我userscript,我正在运行在页面上自动包含的jQuery的功能,似乎jQuery的已经被加载,因为我可以看到一个脚本标记与jQuery URL作为src属性。

供参考的功能是在这里 -

function jquerify(jquerified){ 
if(!(window.JQuery && window.Jquery.fn.jquery == '1')){ 
    var s = document.createElement('script'); 
    s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'); 
    s.setAttribute('type','text/javascript'); 
    document.getElementsByTagName('head')[0].appendChild(s); 
    jquerified = true; 
    console.log("jquerified: " + jquerified); 
    return jquerified; 
} 
} 
jquerify(false); 

所以,不知道为什么$不会被定义。任何想法为什么?

UPDATE-

使用@require解决了这个问题。

+1

可能的复制http://stackoverflow.com/questions/2507802/why-is-undefined-when-i-try-to-use-jquery-in解决这个问题-greasemonkey?rq = 1 – jmishra 2012-08-07 18:48:20

+0

@ ladiesMan217,这不是重复的,但反过来也是一样的问题(把jQuery放在一个范围内,但试图在另一个范围内使用它)。 – 2012-08-07 19:07:30

+0

什么是@require? – 2017-10-09 19:08:10

回答

6

您可以通过使用@require网址

+0

我需要这样做,究竟是@require url? – 2017-10-09 19:07:40