Maison >interface Web >js tutoriel >Comment résoudre les conflits jQuery Sandbox dans Greasemonkey 1.0 ?

Comment résoudre les conflits jQuery Sandbox dans Greasemonkey 1.0 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 18:54:02384parcourir

How Do I Resolve jQuery Sandbox Conflicts in Greasemonkey 1.0?

Conflit jQuery Sandbox dans Greasemonkey 1.0 :

Avec l'introduction de Greasemonkey 1.0, le mécanisme sandbox a subi des changements importants, entraînant des conflits entre Versions jQuery sur les sites Web utilisant la plateforme et les scripts Greasemonkey.

Le conflit surgit en raison du nouveau code @grant, qui modifie le comportement du bac à sable. Cela a conduit à un dysfonctionnement des scripts s'appuyant sur jQuery dans les métadonnées @require en raison de l'interférence de la propre instance jQuery de la page.

Résoudre le conflit :

La documentation officielle de Greasemonkey suggère une solution de contournement impliquant this.$ = this.jQuery = jQuery.noConflict(true). Cependant, cette solution peut ne pas fonctionner efficacement dans tous les cas et peut compromettre les principes de codage.

Une solution plus optimale consiste à réimplémenter le mécanisme du bac à sable. Ceci peut être réalisé en spécifiant une valeur @grant (autre que none) dans le bloc de métadonnées du script Greasemonkey.

Exemple de bloc de métadonnées :

// @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.
*/

Par En restaurant le bac à sable, les conflits entre les différentes instances de jQuery sont résolus et les scripts retrouvent leur compatibilité avec des moteurs supérieurs tels que Tampermonkey et Singe violent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn