2013-11-15 67 views
0

如果我在通过javascript打开的链接上有一个处理程序,那么所有的作品都会弹出窗口。 但是,如果在处理程序中,我做了一个Ajax请求,并且在完成之后,我打开一个新窗口,浏览器将其阻止。我打开它:为什么有时候浏览器阻止弹出窗口,有时不是?

openedWindow = window.open("/interne/appsocial/aggrega/Aggrega" + pageTitle + ".aspx", "popup", "width=" + popupYTSizeWidth + ", height=" + popupYTSizeHeight + ", top=" + top + ", left=" + left); 

你知道为什么吗?我能解决这个问题吗?

+1

这是您无法控制的浏览器设置。 – Liam

+0

但是为什么只用一个处理程序呢?该死的... – markzzz

+0

如果你能控制它,什么会阻止恶意网站产生弹出全国各地的?任何在21世纪初访问(ahem)*专家*网站的人都会知道我的意思 – Liam

回答

2

如果我在通过JavaScript打开的链接上有一个处理程序,那么所有的作品都会显示出来。但是,如果在处理程序中,我做了一个Ajax请求,并且在完成它之后,我打开一个新窗口,浏览器阻止它。

默认情况下,当前浏览器中的弹出窗口阻止程序倾向于在弹出窗口被显式用户交互f.e.所触发时允许弹出窗口。点击一个链接 - 可以假设,这更可能是一个用户实际想要打开的弹出窗口,而不是弹出窗口,该窗口只会“突然出现”,这更可能是恼人的/垃圾邮件。

但你的AJAX请求是异步,没有更多的直接之间单击您的用户,使弹出的开放连接,以及 - 更晚发生,这是由触发的原代码块之后点击已完成执行。因此,它会被阻止,因为浏览器无法区分它与其他类型的“坏”弹出窗口,它们在没有用户交互的情况下得到openend。

+0

好的答案,我没有意识到这种区别+1 – Liam

相关问题