Проблемы с удаленным iframe в приложении Metro

Я видел эту публикацию SO об использовании iframe и выполнении postMessage: Metro App и файл cookie iFrame. Я пытаюсь сделать что-то очень похожее в Win8 Release Preview с приложением HTML/JS Metro, но кажется невозможным воспроизвести поведение в этом решении.

У меня есть простой кадр, хранящийся в удаленном месте, как:

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

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

В моем default.html у меня есть div, который содержит iframe следующим образом:

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

У меня есть произвольная кнопка, которая выполняет postMessage в #frame и на обычном сайте Html запускает удаленные кадры onmessage, но вместо этого я могу посмотреть список ошибок в VS и увидеть:

APPHOST9613: приложению не удалось перейти к https://dl.dropbox.com/u/75275447/win8Frame.html из-за этой ошибки: RESOURCE_NOT_FOUND.

Я попытался изучить любой манифест, который мог бы позволить мне добиться этого, и включил:

  • Домашняя или рабочая сеть
  • Интернет (клиент и сервер)
  • Интернет (Клиент)

Безрезультатно... Я также пытался загрузить фрейм (локальный для приложения) в веб-контент (через ms-wwa-web://), который содержит div, в котором размещается удаленный iframe, и связывает onmessage для пересылки postMessage на удаленный iframe, но снова вижу другую ошибку:

APPHOST9624: приложение не может использовать скрипт для загрузки URL-адреса ms-wwa-web://frame.html/, так как этот URL-адрес запускает другое приложение. Только прямое взаимодействие с пользователем может запустить другое приложение.

Я начинаю думать, что это невыполнимая задача.


person ShelbyZ    schedule 09.07.2012    source источник


Ответы (1)


Одна часть информации, которую я не упомянул, так как считала ее не связанной с этой проблемой, — это ошибка, обнаруженная в консоли javascript, связанная с использованием Jquery, решение которой я нашел в другом сообщение SO. Устранение этой проблемы теперь позволяет приложению загружать удаленный iframe, и я могу нажать кнопку и увидеть, как сообщение достигает javascript удаленного iframe (в моем случае я вижу, что alert() не определено, но я просто пытался доказать, что я мог загружать и выполнять удаленный код).

Я предполагаю, что мораль этой истории заключается в устранении связанных ошибок javascript console...

person ShelbyZ    schedule 10.07.2012