ホームページ > 記事 > ウェブフロントエンド > Greasemonkey 1.0 での jQuery サンドボックスの競合を解決するにはどうすればよいですか?
Greasemonkey 1.0 での jQuery サンドボックスの競合:
Greasemonkey 1.0 の導入により、サンドボックス メカニズムが大幅に変更され、その結果、プラットフォームと Greasemonkey を使用する Web サイトの jQuery バージョンscripts.
サンドボックスの動作を変更する新しい @grant コードが原因で競合が発生します。これにより、@require メタデータ内の jQuery に依存するスクリプトが、ページ自体の jQuery インスタンスからの干渉により誤動作する原因となりました。
競合の解決:
Greasemonkey の公式ドキュメントには、次のことが示唆されています。 this.$ = this.jQuery = jQuery.noConflict(true) に関する回避策。ただし、このソリューションはすべての場合に効果的に機能するとは限らず、コーディング原則を損なう可能性があります。
より最適なソリューションには、サンドボックス メカニズムを再実装することが含まれます。これは、Greasemonkey スクリプトのメタデータ ブロックで @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. */
Byサンドボックスを復元すると、異なる jQuery インスタンス間の競合が解決され、スクリプトは Tampermonkey や Tampermonkey などの優れたエンジンとの互換性を取り戻します。暴力的な猿。
以上がGreasemonkey 1.0 での jQuery サンドボックスの競合を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。