2013-05-10 53 views
0

我遇到了FireFox弹出式窗口拦截器和此JavaScript代码的问题。由于FireFox阻止了弹出窗口,语句.focus()会因为窗口未打开而引发错误,所以之后的任何脚本都不会由于此错误而运行。换句话说,如果FireFox弹出窗口阻止程序阻止在此代码中打开的窗口,这又打破了应用程序,.focus()之后的任何代码都不起作用。控制台提供了一个错误win is nullFireFox Pop Up Blocker在使用.focus()时打破JavaScript应用程序

var win = window.open(url,window,options) 
win.focus() 
alert('hi'); 

我无法找到任何代码来检查,如果一个窗口是运行.focus()代码,任何人有任何建议之前打开?

回答

1
var win = window.open(url,window,options) 
if(win != null) 
    win.focus(); 
alert('hi'); 

这应该有效。你必须检查是否定义了win。如果没有,请不要调用任何方法。

1

或者你可以使用:

var win = window.open(url,window,options) 
try{ 
win.focus() 
} 
catch(ex){ 
    alert(ex.message); 
} 
alert('hi');