Как передать аргументы в окно, используя window.open? - PullRequest
0 голосов
/ 17 декабря 2011

Мне нужно показать некоторую информацию о текущей игре в отдельном окне, и я делал это так:

gWindow = window.open("", "", "width = 350, height = 300, location = no");

if (self.pl.guild != undefined)
{
    gWindow.document.write("<p> Name: " + self.pl.guild.n + "</p>");
}

Теперь мне нужно, чтобы это окно было более сложным ... Мне бы хотелось иметь заранее подготовленную страницу, которую я просто вставлю в нее, я знаю, как это сделать, но я бы хотел чтобы дать этому окну аргументы, или чтобы само окно могло прочитать их с главной страницы. Как ты это делаешь?

Ответы [ 2 ]

1 голос
/ 17 декабря 2011

Вновь открытое окно имеет свойство, которое ссылается на главное окно:

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

Свойства, определенные для объекта gWindow на главной странице, также будут определены в window (глобально) в открытом окне, поскольку gWindow относится к объекту window нового окна.

0 голосов
/ 17 декабря 2011

Передайте их через строку запроса и проанализируйте их на принимающей стороне.

Например:

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 ..

}
...