为什么我无法访问父 window 的变量?

Why am I unable to reach parent window's variables?

假设我打开一个网页,然后 运行 这个 Javascript:

var test = "Success";
window.open(window.location.href);

然后,在打开的window

console.log(window.parent.test);

将产生 undefined。我可以通过这样做来解决问题:

var test = "Success";
window.open(window.location.href).myParent = window;

然后,在另一个 window

console.log(test);

将产生 "Success"。这样,问题就解决了,但是我想知道为什么打开的window开箱后无法到达父window的变量?

你试过了吗window.opener.test?

或者具体来说:console.log(window.opener.test);

这篇link解释了window.parent和window.opener的区别:When to use window.opener / window.parent / window.top