2011-01-09 10 views

Antwort

2

Angenommen, Sie mit diesem Code ein Chrome userscript hatte:

var userscriptVar = "I'm a global variable, userscript context."; 
window.var2  = "I'm a window.scope variable, userscript context."; 

console.log ("Hello from the userscript."); 


Um diese Variablen zugreifen userscript:

  1. Ermitteln Sie die ID des Benutzers. Sie können es auf der Erweiterungen-Seite (chrome://extensions/):

    Getting script's ID

  2. Wechseln Sie in den Kontext des Skripts von der Konsole am unteren Rand im Kontextmenü klicken:

    Switch to userscript scope

    Hinweis dass die ID (pfnbaeafniclcjhfkndoploalomdmgkc) dieselbe ist wie auf der Seite der Erweiterungen.

  3. Jetzt werden Sie sofort in der Lage sein, die Fenster-Bereichs-Variablen (var2) zu sehen und zu ändern, aber Sie können die userscript der globalen (userscriptVar), da die Skript-Instanz längst fertig und verschwand nicht sehen. :

    Accessing Script vars after script is done

  4. userscript Variablen zuzugreifen und zu ändern, während das Skript noch aktiv ist, einen Haltepunkt in dem Skript festgelegt und den Debugger verwenden. Siehe this answer für wie das geht.

    (Click for a larger image)
    Userscript paused at a breakpoint

  5. Mit dem userscript an einem geeigneten Haltepunkt angehalten, können Sie sehen, aber nicht die globalen Werte, von der Konsole ändern.

    (Click for a larger image)
    Can't change from console

  6. Aber man kann den Wert aus dem Debugger ändern:

    (Click for a larger image)
    Setting the value

+1

Änderte meine Antwort, weil dies so detailliert ist, ein 5yo konnte verstehen ;-) – Kugel

1

Brummen ja. Geben Sie einfach den var Namen und drücken Sie die Eingabetaste zu bewerten (Verwendung dir(xxx) für Objekte)

NB: var global Satz sein muss, auf unsafeWindow

+1

Funktioniert nicht. Wahrscheinlich, weil jedes Benutzer-Script in eine anonyme Funktion eingebettet ist. – Kugel

+0

Ich denke, Sie versuchen, auf lokale var zuzugreifen, versuchen Sie, loggen Sie stattdessen mit 'console.log (var)' –

0

Was für mich gearbeitet, die ich die Variable global gemacht. d. h.

var x = "Chairman Mao"; // x not accessible to chrome 
    x = "Chairman Mao"; // X becomes accessible to chrome via inspector 
Verwandte Themen