我有一个带有javascript变量和定义函数的窗口:
// in window 1:
<SCRIPT>
var someVariable = "hello, world";
function myFunc(msg) {
alert(msg);
}
</SCRIPT>
我从第一个窗口中的链接打开第二个窗口,并获取对开启者的引用:
// in window 2:
var windowOpener = window.opener;
第二个窗口打开第三个窗口,它包含以下脚本:
// in window 3:
alert(window.parent.windowOpener.someVariable);
以上行正确打印“hello,world”。但是,然后我尝试在窗口1上执行该功能,因此:
// in window 3:
window.parent.windowOpener.myFunc("hi, world");
抛出以下异常:
“无法设置未定义或空引用的属性'URL'”
我的环境是javascript,Velocity和Struts,因此这些窗口不是通过“window.open”调用打开,而是通过调用转发到vm文件的操作类来打开。我的猜测是它与它有关,但为什么变量引用会起作用而不是函数调用?
答案 0 :(得分:0)
尝试将函数分配给变量,即
// in window 1:
<SCRIPT>
var someVariable = "hello, world";
var myFunc = function(msg) {
alert(msg);
}
</SCRIPT>
根据您提供的代码很难说,因为您没有在那里的任何地方设置URL属性。可能是您的环境的配置问题。