簡體   English   中英

div 元素的 Svelte 打印內容

[英]Svelte print contents of a div element

嗨,我正在為我正在做的一個副項目使用 svelte,我想打印一張收據而不是整個頁面。 有辦法嗎? 我看到其他一些帖子談論如何使用普通 JavaScript 打印 div 元素,但這在 svelte 中不起作用。

示例代碼我只想打印具有 class 可打印元素

<div class="printable">
    <h1>hello world</h1>
</div>

<div class="navbar">
    <a href="/">home</a>
    <a href="/next">next</a>
    <a href="/profile">profile</a>
</div>

您可以使用@media查詢或使用事件( beforeprint / afterprint )和本地狀態來顯示/隱藏事物。

在定位元素方面,如果您在打印時反轉邏輯並標記要刪除的元素,則更容易。 隱藏所有沒有類的元素很容易,但默認情況下會在可打印元素中包含h1

例如:

<div>
    <h1>hello world</h1>
</div>

<div class="navbar not-printable">
    <a href="/">home</a>
    <a href="/next">next</a>
    <a href="/profile">profile</a>
</div>

<style>
    @media print {
        .not-printable { display: none; }
    }
</style>

(如果元素分布在多個文件中,由於組件樣式范圍,您可能希望將其移動到全局樣式表。)

pour imprimer uniqueness ton iv tu vas devoir te servir du DOM et d'une fonction javascript que tu vas créer。 ##########最終代碼#########

function printMyDiv(e)
{
    var divEltToPrint = document.querySelector(".classNameOfDiv");
    var contentOfDivEltToPrint = divEltToPrint.innerHTML;
    var myWindow = window.open('', '', 'height=900px, width=600px');
    myWindow.document.write("<html><head><title>printElement</title></head><body>");
    myWindow.document.write(contentOfDivEltToPrint);
    myWindow.document.write("</body></html>");
    myWindow.print();
    myWindow.close();
}
document.querySelector(".btnPrint").addEventListener("click",printMyDiv);

Après avoir créer une fonction javascript,y ajouter les éléments en suivant les étapes:

1- tu crées une variable pour récupérer ton div a imprimer

var divEltToPrint = document.querySelector(".classNameOfDiv");

2- tu recupères le contenue html de ton div

var contentOfDivEltToPrint = divEltToPrint.innerHTML;

3- tu crées une nouvelle f.netre (c'est cette fenêtre qui sera imprimer) que tu affectes à une variable pour pouvoir la manipuler。

var myWindow = window.open('', '', 'height=900px, width=600px');

4-tu ajoutes les éléments du DOM à ta nouvelle fenêtre;

myWindow.document.write("<html><head><title>printElement</title></head><body>");

5- 繼續維護 DOM 的基礎和結構:

myWindow.document.write(contentOfDivEltToPrint);
myWindow.document.write("</body></html>");

6- tu lances l'impression de ta fenêtre et en suite tu la fermes

myWindow.print();
myWindow.close();

7- tu rajoutes cette fonction a ton bouton d'impression et c'est bon:!! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM