0

我在使用 FireFox 弹出窗口阻止程序和此 javascript 代码时遇到问题。由于 FireFox 会阻止弹出窗口,因此该语句.focus()会因为窗口未打开而引发错误,因此之后的任何脚本都不会由于此错误而运行。换句话说,如果 FireFox 弹出窗口阻止程序阻止了在此代码中打开的窗口,进而破坏了应用程序,那么之后的任何代码.focus()都将无法工作。控制台给出错误win is null

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

在运行代码之前,我找不到任何代码来检查窗口是否打开.focus(),有人有什么建议吗?

4

2 回答 2

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

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

于 2013-05-10T10:57:01.023 回答
1

或者你可以使用:

var win = window.open(url,window,options)
try{
win.focus()
}
catch(ex){
  alert(ex.message);
}
alert('hi');
于 2013-05-10T11:20:37.200 回答