JS 子父窗口互相操作取值赋值的方法可以用于在多个窗口或框架之间进行信息传递和交互。以下是几种常用的方法介绍和示例说明:
JS 子父窗口互相操作取值赋值的方法可以用于在多个窗口或框架之间进行信息传递和交互。以下是几种常用的方法介绍和示例说明:
1. 使用 window.opener 对象
window.opener 是指在当前窗口中打开的父窗口对象,可以通过该对象来实现对父窗口的操作。下面是一个例子,展示如何在子窗口中获取并修改父窗口的变量:
<!-- 父窗口 index.html -->
<!DOCTYPE html>
<html>
<head>
<title>父窗口</title>
<script>
var myVar = "Hello";
</script>
</head>
<body>
</body>
</html>
<!-- 子窗口 child.html -->
<!DOCTYPE html>
<html>
<head>
<title>子窗口</title>
<script>
window.onload = function() {
// 获取父窗口变量
alert(window.opener.myVar); // 输出 "Hello"
// 修改父窗口变量
window.opener.myVar = "World"; // 修改变量值
alert(window.opener.myVar); // 输出 "World"
}
</script>
</head>
<body>
</body>
</html>
注意,使用该方法需要注意跨域问题和安全性问题。
2. 使用 postMessage 方法
postMessage 方法可以用于在不同窗口和文档之间进行安全通信,可以实现双向通信(parent/child、sibling)或操作其他文档。以下是一个示例,在子窗口中向父窗口发送消息并实现两者之间的通信:
<!-- 父窗口 index.html -->
<!DOCTYPE html>
<html>
<head>
<title>父窗口</title>
<script>
function receiveMessage(event) {
var message = event.data;
console.log("Received message : " + message);
}
window.addEventListener("message", receiveMessage);
</script>
</head>
<body>
<h1>父窗口页面</h1>
<iframe src="child.html"></iframe>
</body>
</html>
<!-- 子窗口 child.html -->
<!DOCTYPE html>
<html>
<head>
<title>子窗口</title>
<script>
function sendMessage() {
var message = "Hello from child window!";
window.parent.postMessage(message, "*");
}
</script>
</head>
<body>
<h1>子窗口页面</h1>
<button onclick="sendMessage()">发送消息</button>
</body>
</html>
注意,postMessage 方法传递消息时需要指定传递给哪个窗口(targetWindow),并可以通过 Origin 属性实现通信安全性的保障。
以上是两种常用的 JS 子父窗口互相操作的方法介绍和示例说明。
沃梦达教程
本文标题为:JS子父窗口互相操作取值赋值的方法介绍


猜你喜欢
- Vue 中对计算属性的一点理解 针对get set方法 2023-10-08
- hasLayout引发的CSS Bug表 2023-12-13
- 4个值得收藏的Javascript技巧 2022-08-31
- JavaScript实现QQ聊天室功能 2022-08-30
- 微信小程序宿主环境基础介绍 2022-10-22
- JavaScript定时器类型总结 2023-08-11
- Linux(centos)使用docker安装pdf2htmlEX 2023-10-25
- Express代理转发服务器实现 2023-08-08
- Ajax和$.ajax使用实例详解(推荐) 2023-01-26
- js中的window.open返回object的错误的解决方法 2023-12-26