使用Worker.js - WinJs将变量传递到另一个页面

时间:2014-02-10 17:18:54

标签: javascript windows-8 winjs windows-8.1 winrt-async

我正在开发一个在我的default.html页面上包含iframe的项目, 我试图使用Workers.js作为调解员将第1页的变量传递给我的iframe,

意思是说:

My First page : default.html, that send message to worker.js 
-----------------------------
|    default.html           |      var worker = Worker("ms-appx:///js/worker.js");
|                           |      worker.postMessage({ calc: 1000 });
|              --------     | 
|             |internal|    | 
|             | iframe |    |
|             |        |    |
|              --------     |
----------------------------- 

Worker.js: - >

var total;
onmessage = function (event) {
calc = event.data.calc;
for (var i = 0; i <= calc; i++) {
    //some work
   total = 1+i;   //as example
};

postMessage({ calc: total });}

现在,我尝试向使用相同worker.js的Iframe接收消息

iframe本地页面:

 var worker = Worker("ms-appx:///js/worker.js");
 worker.addEventListener("message",function (e) {
  alert(e.data.calc); //not getting message from worker.js on this page ???
          });

他们的任何解决方案都是使用worker.js将消息从一个页面传递到另一个页面

对不起任何语法错误!!

1 个答案:

答案 0 :(得分:0)

回答你的问题:没有

  

工人在“沙箱”中运行并且范围有限。他们无法访问   大多数网页的对象模型,但有权访问   全局核心JavaScript对象。

无法在两个页面之间共享工作程序。正如jackerella所说,你可以使用共享工作者,但他们还不支持。

看一下documentation here的最后一行,它说:

  

此版本不支持共享工作者。