您不能将 javscript 函数放在 iframe 标记中,就像您正在尝试的那样。目前尚不完全清楚您要完成什么,但这里有一些信息:
如果 iframe 与宿主文档不在同一个域中,则浏览器将阻止两者之间的所有直接 javascript 访问,但使用[window.postMessage()][1]
.
如果 iframe 与宿主文档在同一个域中,那么您可以像这样进入 iframe 的文档内部:
// iframe is the DOM element of the iframe from the host document
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
然后,从那里,您可以进入允许您访问全局 javascript 变量或函数的窗口。
综上所述,您可以在同一域的 iframe 中调用一个函数,如下所示:
var iframe = document.getElementById("myIframe");
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
var iframeWindow = iframeDocument.window;
// call function in the iFrame
iframeWindow.funcIniFrame("xxx");
如果您真正想要做的是拥有一个具有.src
从主机文档生成的属性的 iframe,您可以这样做,并且这种类型的设置没有域限制:
<iframe id="myIFrame"></iframe>
<script>
document.getElementById("myIFrame").src = generateLinkerUrl("http://blog.domain.com/mypage.php");
</script>