0

请,我需要在 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 函数的调用是否正确,还是我需要添加其他内容?

很多tks..

4

1 回答 1

0

您不能将 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>
于 2013-10-29T23:00:55.903 回答