2016-09-20 28 views
3

Ich habe eine übergeordnete Seite, die rendert und Iframe mit unterschiedlich großen Körper. Allerdings, wenn die Website navigiert mit aus www Sie folgende Fehlermeldung erhalten:Uncaught SecurityError Port Problem: Iframe Größe ändern

599 Uncaught Security: einen Rahmen mit Ursprung Blockiert „http://example.com“ aus einem Rahmen mit Ursprung „http://www.example.com“ zugreifen. Protokolle, Domänen und Ports müssen übereinstimmen.

Das Formular wird im iframe gerendert, aber die Scroll-Höhe wird nicht korrekt angepasst (ich kann keine Scroll-Funktionalität auf dem iFrame haben und benötigt das zusätzliche Leerzeichen am unteren Rand des Rahmens).

Dies geschieht, weil die folgende iframe/Funktion auf der Seite:

<iframe id="iframe1" src="http://www.example.com/virtual-directory" height="" width="300px" frameborder="0" onload="iframeLoaded()"></iframe> 
<script> 
    function iframeLoaded() { 
    var iFrameID = document.getElementById('iframe1'); 
    if (iFrameID) { 
     iFrameID.height = ""; 
     iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + 20 + "px"; 
    } 
    } 
</script> 

ich in diesem Beitrag einen Blick nahm SecurityError: Blocked a frame with origin from accessing a cross-origin frame aber ich bin nicht sicher, wo genau, dass der Check implementieren diese Größe ändern zu bekommen richtig funktionieren ohne ein Sicherheitsrisiko einzuführen.

Antwort

1

Wenn Sie sowohl Eltern- als auch Iframe-Steuerelement vollständig kontrollieren können, sollten Sie ConroyP's Antwort hier versuchen: Resizing an iframe based on content.

(es ist die akzeptierte Antwort)

Es ist ein bisschen kompliziert, aber es hat für mich gearbeitet. Abhängig von der Netzwerkgeschwindigkeit kann es fast augenblicklich sein.

Der einzige Nachteil ist, dass es nicht den Iframe Inhalt nach oben scrollen, wenn Sie die Seite darin ändern.

Verwandte Themen