我在一个HTML页面中嵌入了一个iframe如何从子页面向父页面传递信息?
从子页面向父页面传递信息,可以使用JavaScript的window.parent对象来实现。
在子页面中,可以使用window.parent.postMessage()方法将信息传递给父页面。该方法接受两个参数,第一个参数是要传递的信息,可以是一个字符串或一个对象;第二个参数是指定接收消息的父页面的URL,如果不指定,则默认为'*',表示可以接收来自任意URL的消息。
在父页面中,可以使用window.addEventListener()方法来监听message事件,当子页面调用window.parent.postMessage()方法发送消息时,父页面会触发该事件,并可以在事件处理函数中获取到传递的信息。
以下是一个示例:
在父页面中的HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>父页面</title>
</head>
<body>
<h1>父页面</h1>
<iframe id="myFrame" src="子页面.html"></iframe>
<script>
window.addEventListener('message', function(event) {
// 获取传递的信息
var message = event.data;
console.log('接收到子页面传递的信息:', message);
}, false);
</script>
</body>
</html>
在子页面中的HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>子页面</title>
</head>
<body>
<h1>子页面</h1>
<script>
// 向父页面发送信息
window.parent.postMessage('Hello, 父页面!', '*');
</script>
</body>
</html>
当子页面加载完成后,它会向父页面发送消息,父页面监听到message事件后,会在控制台输出接收到的信息
原文地址: https://www.cveoy.top/t/topic/iyht 著作权归作者所有。请勿转载和采集!