2

私はこの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>

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();
    });
});
4

1 に答える 1

7

ブラウザーは、JS コードがポップアップを自動的に開くのを防ぎます。これにより、何百ものウィンドウが自動的に開くページができなくなります。そのため、ポップアップを開くことは、何らかのユーザー インタラクション (クリック) によって直接トリガーされた関数呼び出しから制限されます。アニメーションを使用する場合、コールバックは「自動」カテゴリに分類されるある種のタイマーから呼び出されます。

于 2013-07-19T15:31:12.820 に答える