Javascript 在JS中更改全局范围
假设我在父窗口中运行了一个Javascript 在JS中更改全局范围,javascript,iframe,window,Javascript,Iframe,Window,假设我在父窗口中运行了一个Iframe 我在Iframe中加载了一个脚本,我希望该脚本能够访问其父脚本中的变量 与其一直说window.parent.X,不如直接声明: window= window.parent; 在Iframe?窗口的内部是js的受保护变量,您将无法覆盖它。但是,您可以将window.parent存储在另一个var中,然后使用该var: var parentWindow = window.parent; 你能举例说明你所说的“创建一个隐藏它的闭包”是什么意思吗 请注意,即
Iframe
我在Iframe
中加载了一个脚本,我希望该脚本能够访问其父脚本中的变量
与其一直说window.parent.X
,不如直接声明:
window= window.parent;
在
Iframe
?窗口的内部
是js的受保护变量,您将无法覆盖它。但是,您可以将window.parent
存储在另一个var中,然后使用该var:
var parentWindow = window.parent;
你能举例说明你所说的“创建一个隐藏它的闭包”是什么意思吗
请注意,即使在IIFE的闭包中,您仍然拥有相同的全局对象,即,您不能通过
窗口
访问的任何内容都不会来自父窗口。设置全局标识符窗口将不起作用。您可以创建一个隐藏它的闭包,也可以使用不同的标识符,例如var pwind=window.parent
@PaulS。你能举一个例子说明“创建一个隐藏它的闭包”的意思吗?我对JS比较陌生。
// `window` here works normally
(function (window) {
// `window` here is what would be `window.parent`
}(window.parent));
// `window` here works normally