js中window.open获取参数
时间: 2023-11-18 15:44:17 浏览: 136
可以通过以下方式获取新开窗口的参数:
1. 在调用`window.open()`方法时,将参数以字符串形式作为第二个参数传递。例如:
```
window.open("https://www.example.com", "newWindow", "width=400,height=300");
```
其中,第二个参数`"newWindow"`表示新窗口的名称,第三个参数`"width=400,height=300"`表示新窗口的宽度和高度。
2. 在新窗口中使用`window.opener`属性获取父窗口对象,然后通过父窗口对象的`location.search`属性获取参数。例如:
在父窗口中:
```
var newWindow = window.open("https://www.example.com", "newWindow", "width=400,height=300");
newWindow.myParam = "hello";
```
在新窗口中:
```
var param = window.opener.myParam;
console.log(param); // 输出 "hello"
```
这里将参数以属性的形式存储在`window.opener`对象中,然后在新窗口中通过该对象获取参数。注意,该方法只适用于在同一域名下的窗口间传递参数。
相关问题
window.open获取回调地址
`window.open` 是 JavaScript 中的一个方法,它用于打开一个新的浏览器窗口或标签页,并且可以接收一个参数作为 URL,即目标地址。然而,`window.open` 方法本身并不直接提供获取回调地址的功能。回调地址通常是指在某个操作完成后,系统需要返回到的地址。
如果你需要在打开新窗口后,能够在新窗口中执行某些操作,并且在操作完成后能够将结果传递回原始页面,你可能需要使用以下几种技术手段:
1. 使用查询参数(Query Parameters):在打开新窗口的 URL 中加入特定的查询参数,新页面可以根据这些参数执行相应的操作,并在完成后,通过某种方式(如重定向)将用户带回带有结果的地址。
2. 使用 `window.opener` 属性:如果新窗口是由当前页面打开的,那么新窗口可以使用 `window.opener` 来访问并操作打开它的那个窗口。
3. 使用 Web Storage API:可以在新窗口中使用 `localStorage` 或 `sessionStorage` 存储数据,然后在原窗口中侦听 `storage` 事件来获取这些数据。
4. 使用 `window.postMessage` 方法:这是一种在跨源通信中非常有用的机制,允许窗口间通过发送消息进行安全的通信。
以下是一个使用 `window.open` 结合 `window.opener` 的简单示例:
```javascript
// 假设当前页面的 URL 是 http://example.com
var newWindow = window.open('http://example.com/targetPage.html?param=value', '_blank');
// 在新窗口中,可以执行操作,比如:
// targetPage.html
if (window.opener) {
window.opener.postMessage({ result: 'some data' }, 'http://example.com');
}
// 在原窗口中侦听消息:
window.addEventListener('message', function(event) {
if (event.origin === 'http://example.com') {
console.log('Received data:', event.data);
}
});
```
window.open()参数传递及获取
window.open()是JavaScript中常用的打开新窗口的方法。在使用该方法时,我们可以传递一些参数来定制新打开的窗口,也可以通过新打开窗口中的JavaScript代码来获取这些参数。
在window.open()中,可以设置的参数有:
1. URL:表示要在新窗口中打开的网页的URL地址。
2. name:表示新窗口的名称。
3. width:表示新窗口的宽度。
4. height:表示新窗口的高度。
5. top:表示新窗口距离系统桌面顶部的位置。
6. left:表示新窗口距离系统桌面左侧的位置。
7. menubar:是否显示菜单栏。
8. toolbar:是否显示工具栏。
9. scrollbars:是否显示滚动条。
10. location:是否显示地址栏。
11. status:是否显示状态栏。
12. resizable:是否可以改变窗口大小。
我们可以通过在window.open()中传递这些参数来定制新打开的窗口。例如:
```
window.open('https://www.baidu.com', 'newWindow', 'width=800,height=600,top=100,left=100');
```
此外,我们还可以通过在新打开的窗口中使用JavaScript代码来获取这些参数。例如,在新窗口中编写如下代码:
```
var url = window.opener.location.href;
var name = window.name;
var width = window.opener.innerWidth;
var height = window.opener.innerHeight;
var top = window.screenTop;
var left = window.screenLeft;
```
通过这种方式,我们就可以获取到在window.open()中传递的参数了。需要注意的是,如果新打开的窗口是一个从当前窗口打开的弹出窗口,则可以使用window.opener来获取父窗口的一些信息,例如父窗口的URL、窗口大小等等。
阅读全文