如何使用window.open向窗口传递参数

How to pass arguments to a window using window.open?

本文关键字:参数 窗口 何使用 window open      更新时间:2023-09-26

我基本上需要在一个单独的窗口中显示一些关于当前游戏的信息,我过去是这样做的:

gWindow = window.open("", "", "width = 350, height = 300, location = no");
if (self.pl.guild != undefined)
{
    gWindow.document.write("<p> Name: " + self.pl.guild.n + "</p>");
}

现在,我需要这个窗口更复杂一点…我想要有一个预先准备好的页面,我会把它输入进去,我知道怎么做,但我想给那个窗口参数,或者让窗口自己能够从主页读取它们。你是怎么做到的?

新打开的窗口有一个属性,它指向主窗口:

var main_window = window.opener;
alert(main_window.location.href); // Example

在主页面上的gWindow对象上定义的属性也将在打开的窗口的window(全局)上定义,因为gWindow指的是新窗口的window对象。

通过查询行传递它们,并在接收端解析它们。

例如:

window.open("myotherpage.html#param1=X|param2=Y" ...

在myotherpage.html中输入:

var params = window.location.href.substring(window.location.href.indexOf('#')+1);
params = params.split('|');
for(var i=0; i<params.length; i++) {
  var pair = params[i].split('=');
  var key = pair[0];
  var value = pair[1];
  // .. your code here ..
}