FireFox弹出窗口阻止程序在使用.focus()时破坏javascript应用程序
我对FireFox弹出窗口拦截器和此javascript代码有问题。由于FireFox会阻止弹出窗口,因此语句FireFox弹出窗口阻止程序在使用.focus()时破坏javascript应用程序,javascript,jquery,firefox,Javascript,Jquery,Firefox,我对FireFox弹出窗口拦截器和此javascript代码有问题。由于FireFox会阻止弹出窗口,因此语句.focus()会抛出一个错误,因为窗口未打开,因此之后的任何脚本都不会因为此错误而运行。换句话说,如果FireFox弹出窗口拦截器阻止在此代码中打开的窗口,从而破坏应用程序,则.focus()之后的任何代码都将不起作用。控制台显示错误,因为win为null var win = window.open(url,window,options) win.focus() alert('hi')
.focus()
会抛出一个错误,因为窗口未打开,因此之后的任何脚本都不会因为此错误而运行。换句话说,如果FireFox弹出窗口拦截器阻止在此代码中打开的窗口,从而破坏应用程序,则.focus()
之后的任何代码都将不起作用。控制台显示错误,因为win为null
var win = window.open(url,window,options)
win.focus()
alert('hi');
在运行.focus()
代码之前,我找不到任何代码来检查窗口是否打开,有人有什么建议吗
var win = window.open(url,window,options)
if( win != null)
win.focus();
alert('hi');
这应该行得通。您必须检查是否定义了win
。如果没有,请不要对其调用任何方法。或者您可以使用:
var win = window.open(url,window,options)
try{
win.focus()
}
catch(ex){
alert(ex.message);
}
alert('hi');