PhantomJS能够与WebWorkers合作吗?

时间:2015-05-09 21:22:33

标签: javascript phantomjs web-worker

每当我尝试通过PhantomJS测试Web Worker时,它都会给我一个错误:

  

SECURITY_ERR:DOM例外18:试图突破   用户代理的安全策略。

是否意味着PhantomJS无法与WebWorkers合作,或者我需要设置一些配置才能使其正常工作?

E.g。我需要测试一个与WebWorker交互的脚本(在我的案例中是 worker.js 文件):

var worker = new Worker('doWork.js');
worker.addEventListener('message', function(e) {
  console.log('Worker said: ', e.data);
}, false);
worker.postMessage('Hello World');
phantom.exit();

这是一个工人代码( dowork.js ):

self.addEventListener('message', function(e) {
  self.postMessage(e.data);
}, false);
phantom.exit();

当我尝试运行它时,我得到了:

pavel@lenovo:~/phantom_test$ phantomjs worker.js 
SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent.

  worker.js:1

1 个答案:

答案 0 :(得分:4)

您的脚本无法与当前版本的PhantomJS 2一起使用。 我假设您正在使用PhantomJS 2(但这也适用于PhantomJS 1)。

当主要执行上下文不尊重web-security选项时,我们遇到了问题。最近推出了修复程序(参见https://github.com/ariya/phantomjs/commit/d938eddaf2039cc4d8a90704f736129edb8e1260

因此,您必须等待2.0.1版本或从源代码构建PhantomJS 2.