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 和Violentmonkey 等高級引擎的相容性.
以上是如何解決 Greasemonkey 1.0 中的 jQuery 沙盒衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!