Windows应用商店应用程序和iFrame cookie

Windows Store App and iFrame cookie

本文关键字:iFrame cookie 应用程序 应用 Windows      更新时间:2023-09-26

我有一个托管iframe的Javascript Windows Store应用程序。我的iframe中的网页不知道我的应用程序,所以它没有任何PostMessage接口。

当我"登录"iframe时,iframe会设置一个cookie。但在我的应用程序中,我不相信有什么方法可以获得iframe cookie。这是正确的吗?

如果网页知道我的申请怎么办?(即,我可以更改iframe中的网页)我是否使用PostMessage?

您可以使用PostMessage,您的主页面将收到消息。

以下是Win8开发者预览版中的工作示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=1024, height=768" />
<title>WinWebApp1</title>
<!-- WinJS references -->
<link rel="stylesheet" href="/winjs/css/ui-dark.css" />
<script src="/winjs/js/base.js"></script>
<script src="/winjs/js/wwaapp.js"></script>
<script src="/winjs/js/ui.js"></script>
<!-- WinWebApp3 references -->
<link rel="stylesheet" href="/css/default.css" />
<script src="/js/default.js"></script>
        <script type="text/javascript">
            window.attachEvent("onmessage", receiveMessage);
            function receiveMessage(e) {
                if (e.origin == "http://www.scrumpt.com")
                    document.getElementById("target-element-id").innerHTML = e.data;
            }
</script>
</head>
<body>
    <iframe src="http://www.scrumpt.com/frametest2.html" style="display: block; width: 699px; height: 296.95px; left: -499px; top: 0px;"></iframe>
<div data-win-control="WinJS.UI.ViewBox" style="display: block; top: 50%;">
        <div class="fixed-layout">
        <div id="target-element-id">Click on Send Message above</div>
    </div>
    </div>
</body>
</html>

在服务器上(目前正在运行http://www.scrumpt.com/frametest2.html)你有:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function send() {
      parent.postMessage('hello world', '*');
}
</script>
</head>
<body>
<a href="javascript:send()">Send message</a>
</body>
</html>

如果复制粘贴上面的代码,请确保div("targetelementid")具有正确的id。VS可能会在粘贴时将id更改为"Div1"。