2016-07-27 8 views
0

Ich versuche eine Chrome Devtools Erweiterung für ein von uns entwickeltes JS SDK zu schreiben. Dieses SDK hat eine API addEventListener (die Ereignisse sind keine DOM-Ereignisse), die ich verwenden möchte, um alle Ereignisse anzuzeigen, die in dem von mir erstellten Devtools-Panel veröffentlicht werden.Wie führe ich einen Callback auf der Devtools Seite aus dem JS der Seite aus?

Grundsätzlich würde Ich mag den folgenden Code in der Lage sein in Skript meines devtools Seite zu haben:

chrome.devtools.inspectedWindow.eval(
      "mySDKonTheContentPage", function(result, isException){ 
       mySDK =result; 
       mySDK.addEventListener("myEvent", function(){ 
        doSomethingInDevtoolsUI(); 
       }); 
      }); 

Da Content-Skripte keinen Zugang hat (? Sie tut) an die JS Seite Objekte, I don Ich weiß wirklich nicht, wo ich anfangen soll.

+0

Nicht viel klar über Ihre Frage. Laut der letzten Zeile, wenn Sie auf Seiten-Javascript-Variablen durch Content-Skripte zugreifen möchten, siehe http://StackOverflow.com/questions/3955803/page-variables-in-content-script –

+0

Vielen Dank! Entschuldigung, wenn die Frage unklar ist. Ich dachte, dass das Schreiben einer Devtools-Erweiterung der Erweiterung allen Zugriff auf das geben würde, was auf der Seite läuft, aber anscheinend nicht ... – psykhi

Antwort

1

Im Skript auf Ihrer Seite können Sie window.postMessage verwenden, um Ihre Daten an das Inhaltsskript zu senden. Von dort aus können Sie die Kommunikation zwischen dem Inhaltsskript und dem DevTools-Panel über eine Hintergrundseite einrichten.

See:Messaging from Injected Scripts to the DevTools Page und Messaging from Content Scripts to the DevTools Page für Beispiele in der Dokumentation.

+0

Danke! Ich hatte Angst, dass es keinen direkten Weg dafür gab. Ich werde versuchen mit dem injected-script => content-script => background => devtool panel weg dann: p – psykhi

+0

Wenn es jemand hilft, habe ich eine einfache github repo die Umsetzung dieser: https://github.com/psychi/ chrome-devtools-extension – psykhi

+0

@psychhi Das ist wirklich nützlich. Danke für das Posten. –