2014-08-27 18 views
5

Kiedy dodać @grant dla GM_xmlhttpRequest, otrzymuję:Dodanie wartości @grant łamie mój skrypt Greasemonkey + jQuery?

Error: Permission denied to access property 'call'

w pliku jQuery.
Po usunięciu grantu działa poprawnie.

// ==UserScript== 
// @name  Dimi Test 
// @namespace Dimi 
// @include  about:addons 
// @version  1 
// @grant  GM_xmlhttpRequest 
// @include http://*.myDomain.*/* 
// ==/UserScript== 

var $J = unsafeWindow.jQuery; 

$J(unsafeWindow.document).ready(function(){ 
    alert('Hello'); 
}); 
+0

Dzięki Brock, przetestowałem to pytanie. – Dimi

Odpowiedz

4

Zobacz "Error: Permission denied to access property 'handler'".

Nie można już wywoływać jQuery strony docelowej w ten sposób.

(Zauważ, że w trybie @grant none (domyślnie jako GM 2), unsafeWindow jest taka sama jak window ... Ale wtedy nie można używać GM_ funkcji.)


@require własną rękę kopia jQuery; nie spowoduje konfliktu ze stroną i załaduje się szybciej, do rozruchu.

Nie używaj unsafeWindow do takich rzeczy (lub w ogóle, jeśli możesz w tym pomóc), a $(document).ready() prawie nigdy nie jest potrzebne w skryptach Greasemonkey.

Twój skrypt (nowy) próbka nie jest niczym innym:

// ==UserScript== 
// @name  Dimi Test 
// @namespace Dimi 
// @version  1 
// @grant  GM_xmlhttpRequest 
// @include  about:addons 
// @include  http://*.myDomain.*/* 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js 
// ==/UserScript== 

$("body").prepend ('<h1>Hello World!</h1>'); 

I można następnie wymieszać GM_ funkcje i instancję jQuery bez żadnych problemów.



Uwaga: Skrypt pytanie ma // @include about:addons.
Greasemonkey scripts will not work on the about:addons page, by design.

+2

Dziękuję bardzo za to! Udało mi się to uruchomić. Bardzo doceniane! – Dimi

Powiązane problemy