麻烦弄清楚我的弹出窗口被阻止的原因

Séb*_*her 2 javascript jquery popup

我准备了这个jsFiddle:http://jsfiddle.net/x9D4c/9/

基本上,带有fadeOut回调的按钮会导致我的弹出窗口被阻止,而另一个没有fadeOut回调的按钮则不会.我应该/可以做些什么?

谢谢您的帮助!

在jsfiddle下面的代码下面.

HTML:

<a href="#" id="anchor1">CauseBlock</a> - <a href="#" id="anchor2">Not Cause Block</a>

<div id="greenDiv" style="background-color: green;">green div</div>
Run Code Online (Sandbox Code Playgroud)

JS:

// ################################################

function causeBlock() {
    causeBlockInsideFunction(function () {
        window.open("http://www.google.com/");
    });
}

function causeBlockInsideFunction(callback) {
    $("#greenDiv").fadeOut(function () {
        callback();
    });
}

// ################################################

function notCauseBlock() {
    notCauseBlockInsideFunction(function () {
        window.open("http://www.google.com/");
    });    
}

function notCauseBlockInsideFunction(callback) {
    // [...]
    callback();
}

// ################################################

$(document).ready(function() {
    $("#anchor1").click(function(e) {
        causeBlock();
    });
    $("#anchor2").click(function(e) {
        notCauseBlock();
    });
});
Run Code Online (Sandbox Code Playgroud)

Yan*_*ann 7

浏览器阻止JS代码自动打开弹出窗口.这可以防止页面自动打开数百个窗口.因此,弹出窗口限制是由某些用户交互(单击)直接触发的函数调用.如果使用动画,则会从某种计时器调用回调,该计时器属于"自动"类别.