Приложение для Магазина Windows и файл cookie iFrame - PullRequest
0 голосов
/ 18 января 2012

У меня есть приложение Javascript для Магазина Windows, в котором размещается iframe. Веб-страница внутри моего iframe не знает о моем приложении, поэтому у нее нет PostMessage интерфейса с моим приложением.

iframe установит cookie, когда я 'войду' в iframe. Но в моем приложении я не верю, что есть способ получить файл iframe. Это правильно?

Что если веб-страница знает о моем приложении? (т.е. я могу изменить веб-страницу в iframe) Я использую PostMessage?

1 Ответ

0 голосов
/ 18 января 2012

Вы можете использовать PostMessage , чтобы ваша главная страница получала сообщение.

Вот рабочий пример в Win8 Developer Preview:

<!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 ("target-element-id") имеет правильный идентификатор, если при копировании вставьте код выше. VS может изменить идентификатор на «Div1» при вставке.

...