javascript - 工作线程中的 window.alert

标签 javascript web-worker

如果我在 webworker 客户端上放置一个 window.alert,那么后台 worker 就会停止工作。 为什么会这样?

即 来电者:

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");
}

最佳答案

web worker 是否有权访问 window.alert...我知道 web worker 没有 dom 访问权限..

在worker中,为什么不做一个

if (window && window.alert) {
   // do your normal thing
}
else {
   postMessage("no support for this");
}

关于javascript - 工作线程中的 window.alert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2622598/

相关文章:

javascript - 如何在 JavaScriptCore 中将新的 native 类添加到 WebWorker 的上下文?

javascript - 有没有办法在 Android Webview(使用 CSP)上为 WebWorker 启用 fileuri 访问?

javascript - Jquery - 条件不起作用

javascript - 比较JS创建对象的方式

javascript - 替换方法在浏览器中不起作用但在 console.log 中起作用

javascript - 网络 worker 和 Canvas

javascript - IE 11 是否支持共享 WebWorker?

javascript - 在 JS 中使用 php 设置 cookie 在第 29 行给我一个错误,从 PHP 代码返回一个变量?

javascript - 如何修复 Ajax 从数据库中获取任何内容?

javascript - 'postMessage'上执行 'DedicatedWorkerGlobalScope'失败 : Value at index 0 does not have a transferable type