【问题标题】:Jquery with TampermonkeyJquery 与 Tampermonkey
【发布时间】:2012-08-04 19:56:04
【问题描述】:

所以我的控制台给了我这个消息 -

    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)))

在我的用户脚本中,我正在运行一个自动在页面上包含 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);

所以,不知道为什么 $ 不会被定义。知道为什么吗?

更新-

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

【问题讨论】:

  • @ladiesMan217,这不是重复的,但反过来也是同样的问题(将 jQuery 放在一个范围内,但尝试在另一个范围内使用它)。
  • 什么是@require?

标签: jquery greasemonkey tampermonkey


【解决方案1】:

你可以通过使用@require url来解决这个问题

// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js

【讨论】:

  • 我需要这样做,@require url 到底是什么?
【解决方案2】:

将此添加到您的脚本标题中。

// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js

然后您可以使用$()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多