gpt4 book ai didi

jquery - @require-ing jQuery 覆盖页面的 $ 变量

转载 作者:行者123 更新时间:2023-11-28 07:44:19 24 4
gpt4 key购买 nike

我正在为我的 Greasemonkey 脚本添加 @require-ing jQuery,并在我的脚本文件中添加以下行:

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

而且效果很好;我可以使用 $('#id') 访问 DOM。

但是,“真实”页面的 $ 变量被修改(其中 $ 是 jQuery 1.2.xx):我收到一条错误,指出 $.include 未定义。

我认为Greasemonkey的沙箱模型会防止目标页面的变量被覆盖?

如何确保包含 javascript 库不会影响“真实”网站,而只会影响我的 Greasemonkey 脚本?

最佳答案

Greasemonkey 1.0, radically changed the way the sandbox works ,破坏数千个脚本。另请参阅jQuery in Greasemonkey 1.0 conflicts with websites using jQuery .

这是一个很大的问题,希望您能和我一起在the principle bug report for this issue上发表您的意见/经验。 .

同时,将沙箱恢复到您的脚本,并通过编辑 Metadata Block 解决 $ 冲突。以下面几行结尾:

// @grant       GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a major design change introduced in GM 1.0,
It restores the sandbox.
*/


指定 @grant 值(none 除外)会重新激活沙箱。

<小时/>

您也可以考虑切换到 Scriptish ,它过去提供了卓越的功能和性能,并且不受这种新沙箱行为的影响。

关于jquery - @require-ing jQuery 覆盖页面的 $ 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com