Кросс-доменное сообщение, идентификация iFrame
я используюpostMessage
отправлять события из iframe в родительский документ. Я контролирую обе стороны, но контент поступает из двух разных доменов.
Моя простая проблема заключается в том, что я не могу определить iFrame внутри его родительского метода обратного вызова. Реализация выглядит так:
В кадре:
parent.postMessage(JSON.stringify({action: "closeView" }),'*');
В родительском окне:
window.addEventListener('message',function(event) {
if(event.origin !== 'https://example.com')
return;
// Parse message back to json
var messageObject = JSON.parse(event.data);
var source = event.source;
/* this is returning: Window -URL- */
console.log( source );
/* This will throw Permission denied, although this code is inside of "parent" */
console.log(source.parentNode);
},false);
Я хочу идентифицировать определенный родительский элемент iframe, который (логически) находится внутри родительского документа.
Когда я пытаюсь использоватьevent.source.parentNode
или некоторые jQuery для указанного объекта, говорит Firefox, я не могу сделать это, чтобы предотвратить XSS, ошибка:Error: Permission denied to access property 'parentNode'
Как я могу получить родительский элемент iFrame, который вызвалpostMessage
слушатель событий?