2013-02-08 6 views
0

У меня есть программа, в которой у меня есть страница в локальном контексте, и на этой странице у меня есть iframe, где его содержимое находится в веб-контексте. Теперь я хотел бы отправить некоторые данные из локального контекста в веб-контекст. Как мне это сделать.отправка данных из локального контекста в веб-контекст (WINJS)

местный

var node = document.createElement("iframe"); 
node.src = 'ms-appx-web:///pages/mapView/mapView.html?latitude=' + coordinates.latitude + '&longitude=' + coordinates.longitude; 
node.style.width = '100%'; 
node.style.height = '100%'; 
node.onload = function() { 
    node.contentWindow.postMessage(JSON.stringify(data), "ms-wwa-web://" + 
            document.location.host); 
} 
document.querySelector('#insert').appendChild(node); 

в IFRAME я сделать:

window.addEventListener('message', receiveMsg, false); 

Я получил AJAX вызова, где я получил некоторые данные, но потому, что я не имею доступа к Ajax вызовов в веб-контексте я хотел бы отправить некоторые данные из этого здесь в mapView.html.

Проблема есть. Я бы послал некоторые значения через Get Parameter, но у меня слишком много данных для этого.

любая помощь?

+1

возможно в HTML5 PostMessage - см http://stackoverflow.com/questions/12827495/how-to-give-javascript-alert-from-web-contextiframe-in-metro-app/12832809 # 12832809 –

+0

@ JimO'Neil Вот как я это делал в прошлом. – GotDibbs

+0

ОК, но в примере вы отправляете данные из контекста сети в локальный контекст. Я хочу сделать это наоборот. возможно, важно упомянуть, что я добавляю iframe динамически – Safari

ответ

0

Попробуйте переключить эту линию:

node.contentWindow.postMessage(JSON.stringify(data), "ms-wwa-web://" + 
           document.location.host); 

... к этому:

node.contentWindow.postMessage(JSON.stringify(data), "*"); 

Если это работает, вы должны быть хорошо делать, что здесь в приложении Win 8 (не будет делать что в веб-приложении по соображениям безопасности), но если вы хотите заблокировать его больше, я думаю, вам просто нужно будет изменить второй параметр как один из:

  • "Мс-WWW-страница: ///" (обратите внимание на тройной слэш)
  • "мс-WWW-страница: /// страницы /"
Смежные вопросы