【发布时间】:2014-02-10 17:18:53
【问题描述】:
我正在处理一个在我的 default.html 页面上包含 iframe 的项目, 我正在尝试使用 Workers.js 作为中介将变量从第一页传递到我的 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 将消息从一个页面传递到另一个页面??
如有语法错误,请见谅!!
【问题讨论】:
-
不幸的是,您不能单独使用 Worker 执行此操作 - 您需要
SharedWorker,但它们是 not yet supported in Internet Explorer(这是 Windows Native 应用程序运行的)。您可以通过在 iframe 与其父级之间传递消息来进行设置,但不能直接使用 Worker API。
标签: javascript windows-8 winjs windows-8.1 winrt-async