'window.open'被Firefox阻止

Sun*_*ara 7 javascript firefox google-chrome popup

window.open在文档ready事件中使用并调用它,但它被Firefox中的弹出窗口阻止程序阻止.然后我将其添加到该函数并从一个按钮调用此函数,然后触发按钮单击而不成功:

$(function(){    
    abcd();    
});


function abcd(){
    var popup = window.open("http://localhost/johndyer-mediaelement-7ed6c51/demo/index.php","mypopup","width=500,height=300");       
 }
Run Code Online (Sandbox Code Playgroud)

当页面加载时,是否有某种方法可以在浏览器上打开外部弹出窗口或新选项卡?

dem*_*mee 10

Firefox有一系列规则可以帮助它决定是否应该阻止弹出窗口.通常如果使用用户点击初始化操作,firefox将允许打开弹出窗口,但如果它由"纯"javascript完成,则很可能会阻止它.

你可以在这里阅读:http://support.mozilla.org/en-US/kb/Pop-up%20blocker.

因此,如果您仔细阅读文章,您会注意到用户点击初始化的弹出窗口将打开:

<input type="button" value="Click Me"/>
Run Code Online (Sandbox Code Playgroud)

和jquery代码

$('input').click(function(){window.open("http://google.com");????})?
Run Code Online (Sandbox Code Playgroud)

即使打开弹出窗口拦截器.试试吧:

http://jsfiddle.net/demee/mQ9eR/

  • 如果我知道如何以编程方式关闭用户的poupup拦截器,我将成为百万富翁.也许不使用基于浏览器的弹出窗口尝试使用jquery对话框http://jqueryui.com/demos/dialog/.这不会被阻止,而且会更快. (3认同)

Cli*_*ote 5

不要打开弹出广告.它很烦人.

另一方面,如果它是用户想要看到的消息,那么您可以使用像Colorbox这样的jQuery插件来显示悬停模式窗口,而无需打开新的弹出窗口,用户可以轻松关闭.