Dieser Standardcode für einen IFRAME, gibt es eine Möglichkeit, die src-URL durch nur HTML-Code zu ersetzen? Mein Problem ist also einfach. Ich habe eine Seite, auf der ein HTML-Text aus MYSQL geladen wird. Ich möchte diesen Code in einem Frame darstellen, damit er sich unabhängig vom Rest der Seite und in den Grenzen dieser bestimmten Umrandung darstellt.
<iframe src="http://example.com" name="test" height="120" width="600">You need a Frames Capable browser to view this content.</iframe>
eines Tages
Sie können dies mit einer Daten-URL tun. Dies umfasst das gesamte Dokument in einem einzigen HTML-String. Beispielsweise der folgende HTML-Code:
und dann als einstellen src Attribut des Iframes. Beispiel.
Bearbeiten: Die andere Alternative ist, dies mit Javascript zu tun. Dies ist mit ziemlicher Sicherheit die Technik, die ich wählen würde. Sie können nicht garantieren, wie lange eine Daten-URL vom Browser akzeptiert wird. Die Javascript-Technik würde in etwa so aussehen:
Bearbeiten 2 (Dezember 2017): Verwenden Sie die Html5 srcdoc Attribut, genau wie in Saurabh Chandra Patel‘s Antwort, die jetzt die akzeptierte Antwort sein sollte! Wenn du kannst IE/Edge effizient erkennenist ein Tipp zu verwenden srcdoc-polyfill Bibliothek nur für sie und das “reine” srcdoc-Attribut in allen Nicht-IE/Edge-Browsern (check caniuse.com um sicher zu sein).
Internet Explorer-Unterstützung? Daten-URI kann keine HTML-Dateien in IE8 darstellen
– franzlorenzon
24. April 2013 um 12:05 Uhr
Gibt es eine Möglichkeit, hier Cross-Origin-Header bereitzustellen? Chrome beschwert sich immer wieder Blocked a frame with origin "http://localhost" from accessing a cross-origin frame.
– jozxyqk
3. Januar 2014 um 10:06 Uhr
@AndrewSwan Ich verstehe das Problem mit den einfachen Anführungszeichen nicht ganz. Kannst du mir ein Beispiel geben?
Beachten Sie, dass, wenn Sie verwenden innerHTML Der Browser führt keine untergeordneten Skript-Tags aus. Weitere Informationen finden Sie unter Abschnitt Sicherheitsüberlegungen der Element.innerHTML-MDN-Seite.
@UweKeim Danke für den Vorschlag der Polyfill. Es ist leicht und funktioniert super.
– Der Muffinmann
16. Oktober 2014 um 4:16 Uhr
Entsprechend caniuse.com nur die berüchtigten IE- und Edge-Browser von Microsoft (außer Opera Mini) unterstützen das nicht srcdoc Attribut, es ist also NICHT “sehr begrenzt”. Benutz einfach srcdoc-polyfill für Microsoft-Benutzer.
– Heitor
26. Dezember 2017 um 4:36 Uhr
iframe srcdoc: Dieses Attribut enthält HTML Inhalt, der überschrieben wird Quelle Attribut. Falls ein Browser das nicht unterstützt srcdoc -Attribut, wird auf die URL in der zurückgegriffen Quelle Attribut.
Lassen Sie es uns anhand eines Beispiels verstehen
Ich habe eine Seite, die einen HTML-Körper aus MYSQL lädt. Ich möchte diesen Code in einem Frame präsentieren, damit er sich unabhängig vom Rest der Seite und in den Grenzen dieser spezifischen Umrandung darstellt.
Ein object mit einem uncodierten dataUri hätte möglicherweise auch Ihren Anforderungen entsprochen, wenn nur ein Teil des Datentexts geladen werden sollte:
Der HTML-Code <object> -Element stellt eine externe Ressource dar, die als Bild, verschachtelter Browsing-Kontext oder als von einem Plug-in zu handhabende Ressource behandelt werden kann.
body {display:flex;min-height:25em;}
p {margin:auto;}
object {margin:0 auto;background:lightgray;}
Aber behalten Sie Ihre Iframe-Idee bei, Sie könnten Ihren HTML-Code auch in Ihr Iframe-Tag laden und ihn als srcdoc-Wert festlegen. Sie sollten sich nicht um Anführungszeichen kümmern oder ihn in einen dataUri umwandeln, sondern nur einmal onload auslösen.
Das HTML-Inline-Frame-Element (<iframe>) stellt einen verschachtelten Browsing-Kontext dar, der eine andere HTML-Seite in die aktuelle einbettet.
Beide Iframes unten werden dasselbe rendern, einer erfordert zusätzliches Javascript.