检查窗口是否为弹出窗口的另一种方法

Alternative way to check if a Window is a Popup

本文关键字:窗口 另一种 方法 是否 检查      更新时间:2023-09-26

我有一个页面,可以从我的域打开,也可以从其他域弹出。在这个页面中,我必须通过Javascript检查它是作为弹出窗口打开的,还是直接通过它的URL打开的,并做一些事情。

现在,我正在遵循广泛建议的方法,使用window.opener属性。。。

if (window.opener != null)
    // It is a popup
else
    // It's not a popup

但最近我遇到了一个IE问题,它并没有填满这个属性。

有人能给我一个不同的方法来实现这一点吗?如果不更改某些窗口配置,IE问题可能是不可避免的。

顺便说一句,当我说页面是以弹出窗口的形式打开时,我指的是打开一个新窗口的window.open()调用。

提前谢谢!

检查弹出窗口中的document.referrer。

var ref = document.referrer;
if (ref.match(/mydomain/i)) {
    // page was opened directly
}
else {
    // page was opened by other domain
    // this is a popup
}