猿问

Gareemonkey 1.0中的jQuery与使用jQuery的网站冲突

Gareemonkey 1.0中的jQuery与使用jQuery的网站冲突

自从几天前新的Gregemonkey 1.0发布以来,所有jQuery的站点以及我在Gresemonkey脚本中使用jQuery的地方都不能正常运行我的脚本。我在我的GS脚本中使用的jQuery(使用@require元数据)与页面的jQuery冲突。这要归功于新的@grant密码。

我已经阅读了这些文档,但仍然不知道如何在沙箱中运行GS脚本;唯一的选项似乎是授予对GS API的访问权,或者将其授予None,然后在没有任何安全限制的情况下运行该脚本,当我设计了几十个具有安全限制的GS脚本并喜欢它时,这一点对我来说根本行不通。


郎朗坤
浏览 558回答 3
3回答

翻阅古今

greasemonkey 1.0,从根本上改变了沙箱的工作方式破坏成千上万的剧本。这是一个很大的问题,我希望你能和我一起发表你的意见/经验。这个问题的主要错误报告.Gresemonkey博客声称,您可以通过以下方法解决这个问题:this.$ = this.jQuery = jQuery.noConflict(true);..我不确定这在所有情况下都会起作用。这完全是个错误的方法-避免副作用,干原理,原子编码哲学。在我的意见,最好的策略是恢复沙箱。通过指定@grant价值(不包括none)。编辑您的元数据块以下列行结尾:// @grant       GM_addStyle// @grant       GM.getValue// ==/UserScript==/*- The @grant directive is needed to work around a design flaws introduced in GM 1.0     and again in GM 4.0.     It restores the sandbox. */沙箱将被恢复,所有冲突将得到解决。这些脚本将与高级引擎兼容,比如Tamper猴子和Violent猴子。
随时随地看视频慕课网APP
我要回答