Injizieren Sie eine Javascript-Funktion in einen Iframe
Dieser Link (archivierte Version) beschreibt, wie Code aus einem Skript in einen iframe eingefügt wird:
function injectJS() {
var iFrameHead = window.frames["myiframe"].document.getElementsByTagName("head")[0];
var myscript = document.createElement('script');
myscript.type = 'text/javascript';
myscript.src = 'myscript.js'; // replace this with your SCRIPT
iFrameHead.appendChild(myscript);
}
Das ist in Ordnung, aber was ist, wenn ich ein Funktionsobjekt in einen Iframe einfügen möchteund lassen Sie es im iframe-Kontext ausführen? Angenommen, ich habe:
function foo () {
console.log ("Look at me, executed inside an iframe!", window);
}
und ich möchte den Code von foo in einen iframe einfügen? (function foo könnte etwas dynamisch geladenes sein, ich kann es nicht einfach in Anführungszeichen setzen)
Ich habe naiv versucht:
var scriptFooString = "<script>" + foo.toString() + "</script>"
um den Code in Funktion zu bekommen, aber
Ich weiß nicht, wie ich es in den iframe HEAD einfügen soll (vielleicht mit jquery?)Ich weiß nicht, ob es der richtige Weg istIch weiß nicht, was passiert, wenn die Funktion viel komplexer istIch weiß nicht, was mit doppelten und einfachen Anführungszeichen in passiertscriptFooString
Irgendein Hinweis?