質問

私はwebworkerクライアント上のwindow.alertを置く場合は、

は、バックグラウンドワーカーが働いて停止します。 なぜこれがあるので、?

すなわち。 呼び出し側ます:

var worker = new Worker("worker.js");
// Watch for messages from the worker
worker.onmessage = function(e){
  // The message from the client:
  e.data
};
worker.postMessage("start");

クライアント(worker.js)

onmessage = function(e){
  if ( e.data === "start" ) {
    // Do some computation
    done()
  }
};

function done(){
  alert('don');  // ===> This kills the worker.
  // Send back the results to the parent page
  postMessage("done");
}
役に立ちましたか?

解決

あなたは、ユーザーが[OK]をクリックするまで、警告のJavaScriptエンジンをフリーズ気づいていたの。

あなたはそれがフリーズしたくない場合は、アラートを使用しないでください。

放火犯とデバッグのために

console.log("bla bla bla");

非ロックポップアップの場合:

これで[OK]ボタンで隠されたdiv要素を作ります。ときにポップアップが表示されます。目に見えるのdivを置きます。ユーザーが「OK」非表示をクリックすると、それます。

私はポップアップを使用しないように、あなたを助言します。 )

:また、画面の背後にあるユーザーの(ユーザーの濃度を意味する)「作業の流れ」を壊します

他のヒント

ウェブ労働者はのwindow.alertへのアクセス権を持っていない...私は知っているウェブの労働者は、DOMアクセスを得ることはありません..

労働者で、

をしない理由
if (window && window.alert) {
   // do your normal thing
}
else {
   postMessage("no support for this");
}

ウェブ労働者はバックグラウンドで実行されたJavaScriptコードにあなたを許可します。ウェブ労働者が警告()または確認()関数を呼び出すことはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top