如何将父页面中声明的函数注入iframe,然后调用它?

时间:2015-04-25 03:48:00

标签: javascript iframe

我可以像这样注入一个iframe:

iframe.contentWindow.action...

但是,如果我想发送一个在iframe中声明的函数然后调用它呢?

e.g。

function hello(){...}
iframe.contentWindow...

并且基本上都是在iframe中声明和调用hello

为了澄清,hello的行动应该在iframe内部完成。例如,如果我将document.getElementById("input").value="foo";放在hello内,然后在iframe中调用它,则更改应在iframe内部input内生效,而不是在父窗口中生效。

1 个答案:

答案 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);