Самый быстрый способ передать данные во всплывающее окно, которое я создал с помощью window.open()?

У меня есть код javascript, чтобы открыть всплывающее окно, используя функцию window.open(). Я хотел бы передать данные из родительского окна в это всплывающее окно, и я не могу найти элегантное или простое решение в любом месте в google или SO, но похоже, что для этого встроена JS. Какой самый простой способ передать данные во всплывающее окно?

Заранее благодарим за вашу помощь!

Ответы

Ответ 1

Из-за ограничений безопасности это очень просто, только если родительское окно и всплывающее окно находятся из одного домена. Если это так, просто используйте это:

// Store the return of the `open` command in a variable
var newWindow = window.open('http://www.mydomain.com');

// Access it using its variable
newWindow.my_special_setting = "Hello World";

В окне child (popup) вы можете получить доступ к этой переменной следующим образом:

window.my_special_setting

Было ли что-то конкретное, что вы хотели сделать в прошлом?

Ответ 2

Предполагая, что это тот же домен, сделайте то, что сказал Барт. Если это другой домен, вы можете использовать хэш-тег для передачи некоторых данных, например http://www.example.com/page#some_data_for_the_page. Вы можете URL-адрес кодировать пары ключ/значение, если у вас достаточно данных, чтобы гарантировать это.

Ответ 3

Вы также можете установить переменную в качестве атрибута name в функции open.window, а затем использовать window.name в новом окне для получения значения.

Ответ 4

theWindow.someVar = "bla";