Maison >interface Web >js tutoriel >Comment résoudre les conflits jQuery Sandbox dans 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!