检查Window是否为Popup的替代方法

时间:2013-11-19 16:59:56

标签: javascript popup

我有一个页面可以从我的域中打开,也可以作为从不同域打开的弹出窗口打开。在这个页面中,我必须通过Javascript检查它是否作为弹出窗口打开,或者是否由它的URL直接打开并执行一些操作。

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

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

...但最近我一直面临一个IE问题,这个问题没有填补这个属性。

有人能建议我采用不同的方法来实现这一目标吗?如果不改变某些Windows配置,IE问题可能是不可避免的。

顺便说一句,当我说该页面是作为弹出窗口打开时,我正在谈论一个window.open()调用打开一个新窗口。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

在弹出窗口中查看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
}