请,我需要在html文档中包含iframe,但还需要从位于同一页面上的Js函数中推送变量(检索cookie值)
<script type=text/JavaScript>
var generateLinkerUrl = function(url){ etc...
</script>
<body>
<iframe src=
var newUrl =
generateLinkerUrl("http://blog.domain.com/mypage.php") // url of the iframe </iframe>`
对标签内Js功能的调用是否正确,还是需要添加其他内容?
许多人......
答案 0 :(得分:0)
您不能将javscript函数放在iframe标记中,就像您正在尝试的那样。目前还不完全清楚你想要完成什么,但这里有一些信息:
如果iframe与主机文档不在同一个域中,那么除了使用[window.postMessage()][1]
进行合作通信外,浏览器将阻止两者之间的所有直接javascript访问。
如果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>