복붙노트

[JQUERY] 웹 사이트 jQuery를 사용하여와 jQuery를 그리스 몽키 1.0 충돌

JQUERY

웹 사이트 jQuery를 사용하여와 jQuery를 그리스 몽키 1.0 충돌

해결법


  1. 1.그리스 몽키 1.0, 근본적으로 스크립트의 수천을 파열, 방법 샌드 박스의 작동을 변경했습니다. 이것은 큰 문제이며, 나는 당신이이 문제에 대한 원칙 버그 보고서에 의견 / 경험을 표명 나와 함께 바랍니다.

    그리스 몽키 1.0, 근본적으로 스크립트의 수천을 파열, 방법 샌드 박스의 작동을 변경했습니다. 이것은 큰 문제이며, 나는 당신이이 문제에 대한 원칙 버그 보고서에 의견 / 경험을 표명 나와 함께 바랍니다.

    그리스 몽키는 다음으로 문제를 해결 할 수 있다는 주장을 블로그 :

    this.$ = this.jQuery = jQuery.noConflict(true);
    

    ... 나는 확실히 모든 경우에 작동하고 있지 않다 어느. 그리고 그것은 부작용 회피, DRY 원리, 원자 코딩 철학에서 정확한 잘못된 접근 방식이다. 제 생각에는, 가장 좋은 전략은 샌드 박스를 복원하는 것입니다.

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

    샌드 박스가 복원되고 모든 갈등이 해결 될 것입니다. 그리고 스크립트는 Tampermonkey 및 Violentmonkey 같은 뛰어난 엔진과 호환됩니다.


  2. 2.두에 년이 "기능"아직 충분히 설명하거나 해결되지 않았습니다.

    두에 년이 "기능"아직 충분히 설명하거나 해결되지 않았습니다.

    jQuery를 사용하는 일부 페이지와의 jQuery 여전히 충돌을 요구하는 스크립트.

    잠재적 인 솔루션은 다음과 같습니다 :

    모두 모두, 그리스 몽키에서 끔찍한 결정.


  3. 3.동일한 문제가 있었다.

    동일한 문제가 있었다.

    GM 버전 1.0 이후로, 또한 사용하는 사이트에서 실행, jQuery를 @require 내 모든 스크립트 jQuery를 작동 중지.

    나는. 나는 $ = unsafeWindow 같은 것을 시도해 볼 수도, $ 알고 있지만 요점은 그게 아니다.

    여기서 요점은 사업에 사용하고, 지금은 습관이다.

    추가 @grant GM_log 그들을 고정.

  4. from https://stackoverflow.com/questions/12146445/jquery-in-greasemonkey-1-0-conflicts-with-websites-using-jquery by cc-by-sa and MIT license