我遇到了FireFox弹出窗口拦截器和这个javascript代码的问题。由于FireFox会阻止弹出窗口,因此语句.focus()
会抛出错误,因为窗口未打开,因此之后的任何脚本都不会因此错误而运行。换句话说,如果FireFox弹出窗口阻止程序阻止在此代码中打开的窗口,而该窗口又会破坏应用程序,.focus()
之后的任何代码都将无效。控制台错误为win is null
var win = window.open(url,window,options)
win.focus()
alert('hi');
在运行.focus()
代码之前,我无法找到任何代码来检查窗口是否已打开,是否有人有任何建议?
答案 0 :(得分:1)
var win = window.open(url,window,options)
if( win != null)
win.focus();
alert('hi');
这应该有效。您必须检查是否已定义win
。如果没有,请不要在其上调用任何方法。
答案 1 :(得分:1)
或者您可以使用:
var win = window.open(url,window,options)
try{
win.focus()
}
catch(ex){
alert(ex.message);
}
alert('hi');