我可以像这样注入一个iframe:
iframe.contentWindow.action...
但是,如果我想发送一个在iframe中声明的函数然后调用它呢?
e.g。
function hello(){...}
iframe.contentWindow...
并且基本上都是在iframe中声明和调用hello
?
为了澄清,hello
的行动应该在iframe内部完成。例如,如果我将document.getElementById("input").value="foo";
放在hello
内,然后在iframe中调用它,则更改应在iframe内部input
内生效,而不是在父窗口中生效。
答案 0 :(得分:3)
将脚本标记插入到框架的<head>
部分,其中包含您的代码。脚本标记可以是外部脚本引用,也可以是内联脚本。为了进行注射,你必须是同一个来源。
var idoc = iframe.contentWindow.document;
var script = idoc.createElement("script");
script.textContent = 'document.getElementById("input").value="foo";'
idoc.getElementsByTagName("head")[0].appendChild(script);