Copiez le contenu du div dans une nouvelle iframe
P粉042455250
P粉042455250 2023-08-17 17:03:59
0
1
359
<p>En fin de compte, j'essaie une technique qui imprime un <code>div</code> spécifique mais je suis bloqué sur cette partie de la question. </p> <p>J'ai du code qui doit être copié d'un <code>div</code> vers un nouveau <code>iframe</code> : </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(); ≪/pré> <p>J'ai essayé cela dans les outils de développement sur la page SO (je pourrais essayer d'utiliser <code>div#sidebar</code>). </p> <p>J'ai remarqué que je devais ajouter <code>iframe</code> au document pour que cela fonctionne. Sinon, la propriété <code>.contentWindow</code> est <code>null</code>. </p> Le code <p> semble fonctionner dans une certaine mesure, mais le <code>iframe</code> est vide, ou semble être vide. L'impression finale est vierge. </p> <p>Des conseils pour créer un nouveau <code>iframe</code> avec du contenu copié ? </p>
P粉042455250
P粉042455250

répondre à tous(1)
P粉306523969

D'accord, j'ai une réponse. Je devrais en savoir mieux car je viens de terminer d'enseigner un sujet similaire.

Le code fonctionne, mais il s'exécute trop tôt. Je dois attendre que le chargement du document soit terminé.

Voici une version fonctionnelle :

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();
        });
    };
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!