我有一个页面可以从我的域中打开,也可以作为从不同域打开的弹出窗口打开。在这个页面中,我必须通过Javascript检查它是否作为弹出窗口打开,或者是否由它的URL直接打开并执行一些操作。
现在,我正在使用广泛建议的方法,使用window.opener
属性...
if (window.opener != null)
// It is a popup
else
// It's not a popup
...但最近我一直面临一个IE问题,这个问题没有填补这个属性。
有人能建议我采用不同的方法来实现这一目标吗?如果不改变某些Windows配置,IE问题可能是不可避免的。
顺便说一句,当我说该页面是作为弹出窗口打开时,我正在谈论一个window.open()
调用打开一个新窗口。
提前谢谢!
答案 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
}