此链接(存档版本)描述了如何将脚本中的代码注入 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);
}
我想在 iframe 中插入 foo 的代码?(函数 foo 可能是动态加载的东西,我不能把它用引号括起来)
我天真地尝试:
var scriptFooString = "<script>" + foo.toString() + "</script>"
获取函数内部的代码,但是
- 我不知道如何将它插入 iframe HEAD(也许用 jquery?)
- 不知道这样对不对
- 我不知道当 if 函数比那更复杂时会发生什么
- 我不知道双引号和单引号会发生什么
scriptFooString
任何提示?