2017-06-06 2 views
0

Ich arbeite derzeit an einer WebExtension und injiziert die HTML meiner WebExtension in einen iFrame. Ich möchte Objekte von beliebigen Webseiten in einen Drop-fähigen Bereich im Iframe ziehen und im Drop-Off-Bereich anzeigen. Ich habe einen dragstartListener, der postMessage verwendet, um das HTML-Dokument des Elements zu senden, das jedes Mal gezogen wird, wenn es auf ein Dragstart-Ereignis hört. PostMessage kann jedoch keine Objekte mit Methoden senden. Gibt es Alternativen, um die Funktion zu implementieren? Vielen Dank!Kann postMessage komplexere Objekte senden

+0

JSON.stringify/parse ... Also ja, Sie können. Aber das bedeutet, dass Sie eine Funktion nicht einfach weitergeben und auf der anderen Seite aufrufen können. –

+0

Warum implementieren Sie nicht die Funktion auf der Website im Iframe, so können Sie einfach den Inhalt an den Iframe "senden" und dann die Funktion auf der anderen Seite verwenden –

+0

Danke für die Kommentare! Jonas: Ich habe versucht, JSON.stringify/parse zu verwenden, aber ein großer Teil der Objekte wurde nach der Analyse zurück null, da sie Methoden enthalten. @Matthias: Ich versuche, den Inhalt an den Iframe zu senden, aber meine Funktionen benötigen das HTML-Dokument des Elements, und es kann nicht über postMessage gesendet werden. –

Antwort

0

Ich habe eine Lösung gefunden: XMLSerializer verwenden.

XML-Serializer kann Dom-Elemente tatsächlich in Strings serialisieren. Postmessage kann Strings sicher zu einem anderen Fenster senden.

Verwandte Themen