2009-10-19 32 views

Odpowiedz

9

Jakiego rodzaju debugowania chcesz? Tak jak powiedział Alex, skrypty użytkownika będą wyświetlane w tym samym kontekście, co debugowanie samej strony. Jeśli przejdziesz do zakładki "skrypty" w narzędziach programistycznych, zobaczysz pasek z rozwijanym menu, które pozwoli Ci wybrać odpowiedni plik javascript, który chcesz debugować. Takie skrypty powinny mieć adresy URL wyglądające jak chrome-extension://<hash>/<script file>.js. Te skrypty będą również logować się do konsoli strony, na której są osadzone. Ponadto, jeśli chcesz zalogować się w tym samym miejscu dla wszystkich stron, spróbuj zbudować swój skrypt jako pełne rozszerzenie chrome, używając skryptu użytkownika jako skryptu zawartości. Następnie możesz wysłać wiadomość ze swojego skryptu treści na stronę w tle i zalogować się tam. Na przykład, gdyby to było skrypt treści:

function log(text) { 
    chrome.extension.sendRequest({'action' : 'log', 'text' : text}, function() {}); 
}; 
log("Content script loaded: " + window.location.href); 

I to były strona tła:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
    <script> 
     function onRequest(request, sender, callback) { 
     if (request.action && request.action == 'log') { 
      console.log(request.text); 
     } 
     }; 

     chrome.extension.onRequest.addListener(onRequest); 
    </script> 
    </body> 
</html> 

można zobaczyć każdy ładunek skryptu zawartość w dzienniku tła strony za.

0

Możesz użyć mniejszego skryptu, aby wstrzyknąć niestandardowy skrypt debugowania na stronę. W tym momencie będziesz mieć taki sam dostęp do narzędzi programistycznych, jak gdyby był on faktycznie zawarty na stronie.

+1

LOL ... to jest zasadniczo to, co robię ze skryptem użytkownika i to nie działa :) – d34dh0r53

3

i użytkownik następujących funkcji w moich skryptów dla cross-browser GM kompatybilności API:

function testGM() { 
var isGM = typeof GM_getValue != 'undefined' && typeof GM_getValue('a', 'b') != 'undefined'; 
if(typeof(unsafeWindow) == 'undefined') { unsafeWindow = window; } 
if(!isGM) { log = function(msg) { try { unsafeWindow.console.log(msg); } catch(e) {} }; } else { log = GM_log; } 
if(window.opera) log = opera.postError; 
setValue = isGM ? GM_setValue : function (name, value) { return localStorage.setItem(name, value) }; 
getValue = isGM ? GM_getValue : function(name, def){ var s = localStorage.getItem(name); return s == null ? def : s }; 
} 
testGM(); 

to nie jest moja. to dzięki uprzejmości sizzemctwizzle @ userscripts.org

Używam tylko log, getValue & setValue od teraz, stąd tylko te drzewa w tej funkcji.
Możesz również sprawdzić jego guide.
Możesz też wypożyczyć GIJoe'scross-browser GM Api.

+0

To może być nieaktualne. 'typeof GM_getValue ('a', 'b')! = 'undefined'' ma wartość false w moim usercriptu na chrome –

Powiązane problemy