2017-05-16 13 views
0

モーダルで外部リンクを開こうとしています。window.openに遅延があります

$('[data-link]').on('click', function(event){ 
    event.preventDefault(); 
    var link = $(this).attr('href'); 
    window.open(link, 'newwindow', 'width=300, height=250'); 
}); 

をしかし、私は遅れ関数呼び出し内window.open機能を置けば、私は自分のブラウザにメッセージを「ポップアップがブロックされた」取得:次のコードは正常に動作しますそれはdoesnの

$('[data-link]').on('click', function(event){ 
    event.preventDefault(); 
    var link = $(this).attr('href'); 
    _.delay(function(){ 
     window.open(link, 'newwindow', 'width=300, height=250'); 
    }, 0); 
}); 

どれくらいの遅延があっても、遅れた通話ではうまく動作しません。誰がなぜこれが起こり、どのように私はそれを動作させることができるか知っていますか?

+0

あなたはポップアップブロッカーと戦っています。あなたは勝てないでしょう。 – SLaks

+0

@SLaks私は遅れなくそれを戦う必要はありません。 – AliBZ

答えて

2

ポップアップブロッカーでは、に直接というユーザーイベントへのポップアップを開くことができます。

setTimeout()に電話すると、イベントに直接反応しなくなり、通過できなくなります。

+0

ありがとうございます。ドキュメントへのリンクも追加してください。 – AliBZ

+0

https://developer.mozilla.org/en-US/docs/Popup_Window_Controls – SLaks

関連する問題