Domainübergreifende PostMessage, identifizieren Sie iFrame

ich benutzepostMessage Senden von Ereignissen von einem Iframe an das übergeordnete Dokument. Ich habe die Kontrolle über beide Seiten, aber der Inhalt stammt aus zwei verschiedenen Domänen.

Mein einfaches Problem ist, dass ich den iFrame nicht innerhalb seiner übergeordneten Rückrufmethode identifizieren kann. Die Implementierung sieht folgendermaßen aus:

Im iFrame:

parent.postMessage(JSON.stringify({action: "closeView" }),'*');

Im übergeordneten Fenster:

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);

Ich möchte ein bestimmtes übergeordnetes Element des iFrames identifizieren, das sich (logischerweise) innerhalb des übergeordneten Dokuments befindet.

Wenn ich versuche zu benutzenevent.source.parentNode oder eine jQuery auf das Objekt, sagt Firefox, ich kann dies nicht tun, um XSS zu verhindern, Fehler:Error: Permission denied to access property 'parentNode'

Wie bekomme ich das übergeordnete Element des iFrames, das diepostMessage Ereignis-Listener?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage