我看过这篇关于使用iframe和postMessage的帖子:Metro App and iFrame cookie。我正在尝试使用HTML / JS Metro应用程序在Win8 Release Preview中执行非常类似的操作,但似乎不可能在该解决方案中复制该行为。
我有一个简单的框架存储在远程位置:
<!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 contenxt(通过ms-wwa-web://),其中包含一个托管远程iframe和链的div onmessage将postMessage转发到远程iframe,但我再次看到另一个错误:
APPHOST9624:该应用无法使用脚本加载 ms-wwa-web://frame.html/ url因为url启动了另一个应用程序。 只有直接用户互动才能启动另一个应用。
我开始认为这是一项不可能完成的任务。
答案 0 :(得分:0)
我认为与此问题无关的一条信息是与使用Jquery相关的 javascript控制台中发现的错误,我在另一个SO post找到了解决方案。现在清理该问题允许应用程序加载远程iframe,我可以按下按钮,看到消息到达远程iframe的javascript(在我的情况下,我看到alert()未定义,但我只是想证明我可以加载并执行远程代码。)
我想这个故事的寓意清楚了相关的 javascript控制台错误......