Javascript window.opener!==当目标为“时,子窗口中的窗口返回false”_“自我”;仅在Mozilla中,但在chrome中工作良好
我使用window.open作为目标“_self”从父窗口打开了一个子窗口,当我尝试在子窗口中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
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。但是试图检索开启器是没有用的,因为它实际上是您当前的窗口。