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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage