编辑:由于某种原因,间隔确实看到了某些内容,但崩溃并停止循环而没有进入if语句
这是我的流程。
window.open()
这在Chrome中运行良好,但在IE9上有效。
我尝试了什么(都在chrome中工作)
弹出式广告:
window.opener.function(data);
window.close();
在窗口中:
var checkInterval = setInterval(function(){
if (win.variable){ // win = popup window!
clearInterval(checkInterval);
win.close();
// works!
}
}
但是在IE9中都不起作用。我该如何解决这个问题?
答案 0 :(得分:2)
当弹出窗口进入twitter时,域名不再相同,所以在IE9中,当尝试读取页面上的变量时,它会崩溃。
要么检查window.opener是否可用(意味着你在同一个域上),并确保在访问变量(首选)之前将其保持相同,或者在try / catch中封装if语句
var checkInterval = setInterval(function(){
try {
if (win.variable){ // win = popup window!
clearInterval(checkInterval);
win.close();
// works!
}
} catch (e) {}
}
答案 1 :(得分:0)
一种非常简单的方法是使用锚点
来传回变量所以你的回调网址将如下所示:
http://example.com/index/#var1:value1,value2/var2:value3,value4 ...
使用hashchange plugin in jQuery可以让您的生活变得非常轻松,以便解决您的问题。
此外,您可以使用hasher micro library使用适用于IE9的核心Javascript