問題: Greasemonkey 1.0 での jQuery の競合
Greasemonkey 1.0 の出現以来、ユーザーは Greasemonkey スクリプト内とそれ以降の jQuery ライブラリ間の競合に遭遇しています。ウェブページ。セキュリティ強化を目的として新しく導入された @grant キーワードは、互換性の問題によりこの問題を引き起こしました。
jQuery などの外部ライブラリの組み込みを可能にする既存の @require メタデータは、サンドボックス化された Greasemonkey スクリプトで制限に直面しています。 。ページとスクリプトの両方で jQuery を使用している場合、この競合によりスクリプトの適切な実行が妨げられます。
解決策: サンドボックスの再アクティブ化
この問題に対処するには、ユーザーは Greasemonkey を再アクティブ化する必要があります。 「none」以外の @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. */
特定の権限を付与することで、このアプローチは効果的にサンドボックスを復元し、Greasemonkey スクリプトをページベースの jQuery インスタンスと並行して調和して実行できるようにします。さらに、同様のサンドボックス機能を提供する Tampermonkey や Violentmonkey などの高度なスクリプト エンジンとの互換性も保証します。
以上がGreasemonkey 1.0 での jQuery の競合を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。