我在我的脚本文件中使用此行为我的Greasemonkey脚本要求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)重新激活沙箱.
原文地址:https://www.jb51.cc/jquery/180696.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。