Greasemonkey 1.0 中的 jQuery 沙箱冲突:
随着 Greasemonkey 1.0 的引入,沙箱机制发生了重大变化,导致之间存在冲突使用该平台和 Greasemonkey 的网站上的 jQuery 版本脚本。
由于新的 @grant 代码修改了沙箱行为而导致冲突。这导致 @require 元数据中依赖 jQuery 的脚本由于页面自身 jQuery 实例的干扰而出现故障。
解决冲突:
Greasemonkey 的官方文档建议涉及 this.$ = this.jQuery = jQuery.noConflict(true) 的解决方法。然而,该解决方案可能无法在所有情况下有效,并且可能会损害编码原则。
更优化的解决方案包括重新实现沙箱机制。这可以通过在 Greasemonkey 脚本的元数据块中指定 @grant 值(除了无)来实现。
示例元数据块:
// @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. */
通过恢复沙箱,解决不同 jQuery 实例之间的冲突,脚本恢复与 Tampermonkey 等高级引擎的兼容性暴力猴子。
以上是如何解决 Greasemonkey 1.0 中的 jQuery 沙盒冲突?的详细内容。更多信息请关注PHP中文网其他相关文章!