Согласно этой странице я могу вызывать параметры и функции дочерних окон, но она не работает для меня.
var w = window.open("index.html");
console.log(w);
console.log(w.foo);
console.log(w)
показывает, что есть функция с именем foo
, но console.log(w.foo)
выводит undefined
. Это проблема безопасности?
РЕДАКТИРОВАТЬ Вот еще некоторые функции:
child.html (без тела):
<head>
<script type="text/javascript">
test = 123 ;
function foo(arg){
//do something
}
</script>
</head>
parent.html:
var w = window.open("child.html");
console.log(w);
//outputs all the methods and parameters
console.log(w.foo);
//outputs 'undefined'
console.log(w.test);
//outputs 'undefined'
РЕДАКТИРОВАТЬ 2 Также я должен объяснить, почему мне нужно передавать аргументы, поскольку кто-то неизбежно спросит меня, почему я не могу «просто жестко закодировать это». У меня есть элемент HTML-холста, и каждый раз, когда пользователь щелкает правой кнопкой мыши, появляется меню, вызываемое правой кнопкой мыши, с опцией «формы списка внизу».
Когда пользователь щелкает этот пункт меню, я хочу передать список всех фигур под этим щелчком и отобразить его в новом окне. Вот проблемы, с которыми я сталкиваюсь:
Я не могу передать его в качестве аргумента b / c. Я не знаю, было ли загружено окно (похоже, я тоже не могу изменить функцию onload
)
У меня не может быть запроса дочернего окна к родительскому окну b / c, меню щелчка правой кнопкой мыши исчезает после нажатия на него.