2012-04-06 7 views
0

なぜこのsetTimeoutの呼び出しで警告ボックスが表示されますが、window.openは呼び出されませんか? アラートを削除すると、window.openも実行されません。setTimeout内のwindow.openはアクションを実行しません

// Pause first then open window 
    function pause_first (url) { 
     alert (url); 
     var external_window = window.open(url,'_blank'); 
     external_window.focus(); 
    } 

    var pause_ret = setTimeout(function() { pause_first(url); }, 1000); 
+0

ブラウザは、「クリック」などのユーザアクションに対する応答でない限り、ポップアップを開きません。 – Esailija

+0

window.openを遅延させる別の方法はありますか? – user823527

+0

私は作っているアプリで同じ問題を抱えていました。ブラウザがそれをブロックしていることを知っているのは良いことです。私は愚かではありません。 –

答えて

1

ほとんどの場合、ブラウザはユーザーがトリガーしないポップアップと見なすため、ブロックされます。

+0

したがって、私はその要素のonclickイベントで呼び出された関数の中でsetTimeoutを呼び出すと、ブラウザはユーザーアクションではないとブラウザが考えています。ブラウザがそれを考えるようにする方法はありますか? – user823527

+1

^すべてのポップアップスパマーがこれまでに言った... – jondavidjohn

関連する問題