Эта ссылка (заархивированная версия) описывает как ввести код из script в iframe:
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);
}
Это нормально, но что, если я хочу вставить объект функции в iframe и выполнить его в контексте iframe? Скажем, у меня есть:
function foo () {
console.log ("Look at me, executed inside an iframe!", window);
}
и я хочу вставить foo-код внутри iframe? (функция foo может быть динамически загружена, я не могу просто ее обернуть в кавычки)
Я наивно пробовал:
var scriptFooString = "<script>" + foo.toString() + "</script>"
чтобы получить код внутри функции, но
- Я не знаю, как вставить его в iframe HEAD (возможно, с jquery?)
- Я не знаю, правильно ли это.
- Я не знаю, что произойдет, если функция намного сложнее, чем
- Я не знаю, что происходит с двойными и одинарными кавычками в
scriptFooString
Любые подсказки?