2016-07-08 9 views
0

Aus irgendeinem Grund wird das injizierte Skript nicht erhalten, was das Inhaltsskript es sendet.Senden Sie Nachrichten von contentscript an injectedScript

document.dispatchEvent(new CustomEvent('ToFBScript',{detail: {data: "Hello World"}})); 

//Injecting Script 
var s = document.createElement('script'); 
s.src = chrome.extension.getURL('fbscriptforextension.js'); 
(document.head||document.documentElement).appendChild(s); 
s.onload = function(){ 
s.parentNode.removeChild(s); 
}; 

Mein contentScript

var storage; 
document.addEventListener('ToFBScript',function(e){ 
storage = e.detail.data; 
console.log(storage); 
}); 

Mein injizierte Script

+0

Mögliches Duplikat [Chrome-Erweiterung - Google Mail-Original-Nachricht abrufen] (http://stackoverflow.com/questions/9602022/chrome-extension-retrieving-gmails-original-message) –

+0

Neben obigem Link http: //stackoverflow.com/questions/9915311/chrome-extension-code-vs-content-scripts-vs-injected-scripts könnte auch helfen, Inhaltsskripte gegenüber injizierten Skripten zu verstehen. –

+0

Kurzer Hinweis: Ihre letzten 2 Bearbeitungen haben meine Antwort ungültig gemacht. Eine Frage substanziell zu bearbeiten, nachdem Sie Antworten erhalten haben, ist normalerweise eine schlechte Idee. Ich würde Sie bitten, diese zurückzuwerfen und eine neue Frage zu stellen, wenn Sie noch Probleme haben. – Xan

Antwort

1

Sie versuchen, die data Eigenschaft CustomEvent zu setzen, aber man kann nur gesetzt detail. Glücklicherweise können Sie alles auf JSON-serialisierbar setzen.

document.dispatchEvent(new CustomEvent('ToFBScript', {detail: {data: g}})); 

/* ... */ 

document.addEventListener('ToFBScript', function(e) { 
    storage = e.detail.data; 
} 
+0

Ich habe dies getan und console.log (Speicher) setzen; mit dem Ereignis-Listener im injizierten Skript, aber nichts druckt sogar aus und ich denke, dass aus irgendeinem Grund das injizierte Skript das Ereignis gerade nicht erhält. Könnte es damit zu tun haben, wann jedes Skript geladen oder injiziert wird? – Victoria

+0

Nun, Sie zeigen nicht, wie Sie es injizieren. – Xan

+0

Ich habe meinen obigen Code bearbeitet zeige den Codeblock für Inhaltsskript zeigt die Injektion des eingespritzten Skripts – Victoria

Verwandte Themen