Kopieren Sie den Inhalt des Div in einen neuen Iframe
P粉042455250
P粉042455250 2023-08-17 17:03:59
0
1
358
<p>Letztendlich versuche ich eine Technik, die einen bestimmten <code>div</code> ausgibt, aber ich bleibe bei diesem Teil der Frage hängen. </p> <p>Ich habe Code, der von einem <code>div</code> in einen neuen <code>iframe</code> kopiert werden soll: </p> <pre class="brush:js;toolbar:false;">var iframe = document.createElement('iframe'); var div = document.querySelector('div#sidebar'); var content = div.innerHTML; iframe.srcdoc = `<!DOCTYPE html><html><head></head><body>${content}</body></html>`; document.body.append(iframe); iframe.contentWindow.print(); </pre> <p>Ich habe dies in den Entwicklertools auf der SO-Seite versucht (ich könnte es mit <code>div#sidebar</code> versuchen). </p> <p>Mir ist aufgefallen, dass ich dem Dokument <code>iframe</code> hinzufügen muss, damit dies funktioniert. Andernfalls ist die Eigenschaft <code>.contentWindow</code> <code>null</code>. </p> Der <p>code scheint einigermaßen zu funktionieren, aber der <code>iframe</code> ist leer oder scheint leer zu sein. Der endgültige Ausdruck ist leer. </p> <p>Irgendwelche Tipps zum Erstellen eines neuen <code>iframe</code> </p>
P粉042455250
P粉042455250

Antworte allen(1)
P粉306523969

好的,我有一个答案。我应该更加了解,因为我刚刚完成了一个类似主题的教学。

代码是有效的,但是它运行得太早了。我需要等待文档加载完成。

这是一个可行的版本:

var iframe = document.createElement('iframe');
var div = document.querySelector('div#sidebar');
var content = div.innerHTML;
iframe.srcdoc = `<!DOCTYPE html><html><head></head><body>${content}</body></html>`;

document.body.append(iframe);

//  等待iframe加载完成:
    iframe.onload = () => {
        iframe.contentWindow.print();
        iframe.contentWindow.addEventListener('afterprint', event => {
            iframe.remove();
        });
    };
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!