Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.opener!==当目标为“时,子窗口中的窗口返回false”_“自我”;仅在Mozilla中,但在chrome中工作良好_Javascript - Fatal编程技术网

Javascript window.opener!==当目标为“时,子窗口中的窗口返回false”_“自我”;仅在Mozilla中,但在chrome中工作良好

Javascript window.opener!==当目标为“时,子窗口中的窗口返回false”_“自我”;仅在Mozilla中,但在chrome中工作良好,javascript,Javascript,我使用window.open作为目标“_self”从父窗口打开了一个子窗口,当我尝试在子窗口中console.log(window.opener!==window)时,它在Mozilla中返回false,但在chrome中工作正常并返回true 我想要的是原始父窗口实例的引用 包裹沙箱 试试看 函数myFunction(){ var wnd=window.open(“关于:空白”,“自身”); wnd.document.write( “空白\警报(window.opener!==window

我使用window.open作为目标“_self”从父窗口打开了一个子窗口,当我尝试在子窗口中
console.log(window.opener!==window)
时,它在Mozilla中返回false,但在chrome中工作正常并返回true

我想要的是原始父窗口实例的引用


包裹沙箱
试试看
函数myFunction(){
var wnd=window.open(“关于:空白”,“自身”);
wnd.document.write(
“空白\警报(window.opener!==window)\”
);
控制台日志(wnd);
}
根据

使用说明 从另一个窗口打开窗口时(使用 Window.open或具有其目标属性集的链接),它维护 将第一个窗口引用为window.opener。如果当前窗口 没有打开器,此方法返回null

所以我希望
window.open
targeting self是
null
,因此

window.opener!==窗口//正确

这可能是一个bug,也可能是有意为之——FF68.0.1和Chrome75.0.3770.142中似乎没有同意

作为一种解决方法,模拟一个
\u开场白


包裹沙箱
试试看
函数myFunction(){
window.\u opener=window.open(“关于:空白”,“自身”);
窗口。\u opener.document.write(
“空白\警报(窗口。\打开器!==窗口)\”
);
}

如果名称为的窗口已存在,则将
strUrl
加载到现有窗口中。在这种情况下,方法的返回值是现有窗口,并且忽略
strWindowFeatures
。为
strUrl
提供空字符串是一种通过名称获取对打开窗口的引用的方法,而无需更改窗口的位置

所以当你这么做的时候

window.open(url, '_self');
实际上,您只是将当前的窗口设置为此
url
,但窗口对象不会更改

btn.onclick=e=>{
const wnd=window.open('''.'u self');//我们不要更改url
console.log(窗口===wnd);
};

点击我
请阅读并编辑你的问题。问题中你没有得到什么?我刚才提到的那两页上解释了什么,你没有得到什么?如果你不告诉我们你到底做了什么,我们无法判断你是否只是做错了什么。兄弟,描述是不言自明的。你能举一个打开窗口的代码的完整示例吗,加上针对上述条件的子窗口测试?我想要的是子窗口中父窗口的引用window@AayushMittal到目前为止,我确信它们都共享一个
window
object/reference-但您仍然可以wnd.parent=window?你不能吗?请解释什么不起作用?哪个版本?对我来说,你的问题和我的例子都很好,谢谢。但我想要的是“子窗口”中父窗口的引用。您在子窗口中建议的“var originalWindow=window”将给出子窗口本身的引用,而不是父窗口。否,请再次阅读我的答案。没有子窗口。
wnd
和主
window
都是同一个对象。但我的要求是使用window.open打开一个childwindow。但是试图检索
开启器是没有用的,因为它实际上是您当前的
窗口。