Socket.io ID и безопасность информации о пользователе

Наконец, я нашел другое решение для отправки данных на родительский сайт из iframe с помощью window.postMessage(message, targetOrigin);. Здесь я объясняю, как я это сделал.

Сайт A = http://foo.com Сайт B = http://bar.com

SiteB загружается внутри сайта сайта

Сайт сайта SiteB имеет эту строку

window.parent.postMessage("Hello From IFrame", "*"); 

или

window.parent.postMessage("Hello From IFrame", "http://foo.com");

Тогда у сайтаA есть следующее Код

// Here "addEventListener" is for standards-compliant web browsers and "attachEvent" is for IE Browsers.
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];


var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

// Listen to message from child IFrame window
eventer(messageEvent, function (e) {
   alert(e.data);
   // Do whatever you want to do with the data got from IFrame in Parent form.
}, false); 

Если вы хотите добавить соединение безопасности, вы можете использовать это условие if в eventer(messageEvent, function (e) {})

if (e.origin == 'http://iframe.example.com') {
    alert(e.data); 
    // Do whatever you want to do with the data got from IFrame in Parent form.
}

Для IE

Внутри IFrame:

 window.parent.postMessage('{"key":"value"}','*');

Снаружи:

 eventer(messageEvent, function (e) {
   var data = jQuery.parseJSON(e.data);
   doSomething(data.key);
 }, false);

-1
задан zlotte 15 January 2019 в 15:16
поделиться