wake-up-neo.com

Iframe ohne Src, aber trotzdem Inhalt?

Beim Debuggen von Jquery-Code auf seiner Website (über die Chrome-Entwicklerwerkzeugleiste)

Ich habe bemerkt, dass ihre Beispiele unter Iframe angegeben sind: 

Hier - zum Beispiel es gibt ein Beispiel, das sich unter einem Iframe befindet, aber nach einer Untersuchung sehe ich, dass das Iframe keine SRC hat. 

Das Bild zeigt alles

enter image description here

Frage: 

Ist es möglich, den Inhalt eines Iframes ohne SRC einzustellen? 

p.s. Dieses Menü zeigt mir auch einen leeren Inhalt 

enter image description here

27
Royi Namir

Ja, es ist möglich, einen leeren <iframe> (ohne Angabe von src) zu laden und den Inhalt später mithilfe eines Skripts anzuwenden.

Siehe: http://api.jquery.com/jquery-wp-content/themes/jquery/js/main.js (Zeile 54 und darunter).

Oder probiere es einfach:

<iframe></iframe>

document.querySelector('iframe')[0]
        .contentDocument.write("<h1>Injected from parent frame</h1>")
34
haim770

Ja, so ändern Sie die HTML-Datei des Iframes mit jQuery

var context = $('iframe')[0].contentWindow.document,
    $body = $('body', context);
$body.html('Cool');

Demo: http://jsfiddle.net/yBmBa/

document.contentWindow: https: //developer.mozilla.org/en-US/d ...

6
iConnor

Sieht so aus, als wäre dies die kompatibelste Lösung für alle Browser und wird auch vom W3C erkannt.

<iframe src="about:blank"></iframe>
4
Oriol

Sicher. Mit können Sie einen Verweis auf das iframe-Objekt der document erhalten

var doc = iframe.contentDocument;

anschließend können Sie Elemente wie im aktuellen Dokument erstellen und hinzufügen.

Wenn der iframe kein src-Attribut hat, enthält er immer noch ein leeres Dokument. Ich glaube jedoch, dass mindestens ältere IE - Versionen das src-Attribut setzen müssen, andernfalls enthält der iframe kein Dokument.

Siehe auch: contentDocument für einen iframe .

3
Felix Kling

Versuchen Sie zu geben:

src ="javascript:false;"
1
Aditya

Ich mische die besten Antworten in Javascript und jQuery und stelle diese Lösung für jeden iframe auf einer Seite her:

<div class="iframewrapper ws-s-top mb-50" data-content="<!DOCTYPE html><html><head></head><body><p>Hello world</p></body></html>">
    <iframe frameborder="0" src=""></iframe>
</div>

$(".iframewrapper").each(function(){
    var html = $(this).attr("data-content");
    var iframe = $(this).find('iframe');
    var context = iframe[0].contentDocument.write(html);
    iframe[0].contentWindow.document.close(); //without this line, page loading animations won't go away!
});
0
Alex Jolig