2

我看过这个关于使用 iframe 和做 postMessage: Metro App and iFrame cookie的帖子。我试图在 Win8 Release Preview 中使用 HTML/JS Metro 应用程序做一些非常相似的事情,但在该解决方案中复制行为似乎相当不可能。

我有一个简单的框架存储在远程位置:

<!DOCTYPE html>
<html>
<body>
<script>
window.onmessage = function(e) {
    alert("Hello world");

    debugger;
};
</script>
</body>
</html>

在我的 default.html 中,我有一个包含 iframe 的 div,如下所示:

<div id="container">
    <iframe id="frame" src="https://dl.dropbox.com/u/75275447/win8Frame.html"></iframe>
</div>

我有一个在#frame 上执行 postMessage 的任意按钮,并且会在普通的 Html 站点中触发远程帧 onmessage,但是我可以查看 VS 中的错误列表并查看:

APPHOST9613:应用程序无法导航到 https://dl.dropbox.com/u/75275447/win8Frame.html,因为此错误:RESOURCE_NOT_FOUND。

我已尝试查看任何可能允许我实现此目的的清单并启用:

  • 家庭或工作网络
  • 互联网(客户端和服务器)
  • 互联网(客户端)

无济于事...我还尝试将一个框架(应用程序本地)加载到 Web 内容中(通过 ms-wwa-web://),其中包含一个 div,该 div 托管远程 iframe 并链接 onmessage 以转发postMessage 到远程 iframe,但我再次看到另一个错误:

APPHOST9624:应用无法使用脚本加载 ms-wwa-web://frame.html/ url,因为该 url 会启动另一个应用。只有直接的用户交互才能启动另一个应用程序。

我开始认为这是一项不可能完成的任务。

4

1 回答 1

0

我认为与此问题无关的一条信息是在javascript 控制台中发现的与使用 Jquery 相关的错误,我在另一篇SO 帖子中找到了解决方案。现在清除该问题允许应用程序加载远程 iframe,我可以按下按钮并查看消息到达远程 iframe 的 javascript(在我的情况下,我看到 alert() 未定义,但我只是想证明我可以加载并执行远程代码)。

我想这个故事的寓意是清除相关的javascript控制台错误......

于 2012-07-10T13:24:17.253 回答