> 웹 프론트엔드 > JS 튜토리얼 > Greasemonkey 1.0에서 jQuery Sandbox 충돌을 어떻게 해결합니까?

Greasemonkey 1.0에서 jQuery Sandbox 충돌을 어떻게 해결합니까?

Mary-Kate Olsen
풀어 주다: 2024-11-19 18:54:02
원래의
352명이 탐색했습니다.

How Do I Resolve jQuery Sandbox Conflicts in Greasemonkey 1.0?

Greasemonkey 1.0의 jQuery Sandbox 충돌:

Greasemonkey 1.0의 도입으로 샌드박스 메커니즘이 크게 변경되어 플랫폼과 Greasemonkey를 사용하는 웹사이트의 jQuery 버전 scripts.

샌드박스 동작을 수정하는 새로운 @grant 코드로 인해 충돌이 발생합니다. 이로 인해 페이지 자체 jQuery 인스턴스의 간섭으로 인해 @require 메타데이터에서 jQuery를 사용하는 스크립트가 오작동하게 되었습니다.

충돌 해결:

Greasemonkey의 공식 문서에 따르면 this.$ = this.jQuery = jQuery.noConflect(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.
*/
로그인 후 복사

By 샌드박스를 복원하면 서로 다른 jQuery 인스턴스 간의 충돌이 해결되고 스크립트는 Tampermonkey 및 같은 우수한 엔진과의 호환성을 다시 얻습니다. 폭력몽키.

위 내용은 Greasemonkey 1.0에서 jQuery Sandbox 충돌을 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿