gpt4 book ai didi

javascript - 从 iframe 内的父窗口调用 javascript 函数,但 iframe src 来自远程计算机

转载 作者:行者123 更新时间:2023-11-28 20:35:43 24 4
gpt4 key购买 nike

首先,我的页面中有这个 iframe。

<iframe src="https://192.168.100.87/index.html">
<p>Browser does not support iframe</p>
</iframe>

我的页面头标记中有以下脚本。

<head>
<script type="text/javascript">
function callMe(){
alert('called');
}
</script>
</head>

我有来自远程计算机的index.html 的以下代码。

<body>
<input type="button" value="Click" onClick="window.parent.callMe()" />
</body>

如您所见,我正在调用包含 iframe 的主页的函数。但不幸的是我无法调用该函数。

这可能吗,我在这里缺少什么?谢谢

最佳答案

您无法访问另一个域的窗口的属性或调用方法。不过,您可以使用 postMessage 将消息发送到其他域中的框架(请参阅 https://developer.mozilla.org/en-US/docs/DOM/window.postMessage)。

尝试 parent.postMessage('testing', '*');。第一个参数是要发送的数据;第二个是您要将其发送到的窗口的域。使用 '*' 让您可以将其发送到任何主机,但为了更好的安全性,您应该使用父级的实际域。

然后在您的父页面中:

window.addEventListener('message', function(event) {
if (event.data == 'testing') {
callMe();
}
});

这只适用于现代浏览器。如果您需要支持较旧的浏览器(例如 IE 7 或更早版本),请寻找 postMessage 填充。

关于javascript - 从 iframe 内的父窗口调用 javascript 函数,但 iframe src 来自远程计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15424286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com