window.print () показывает один и тот же результат на разных страницах - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь распечатать некоторые счета с помощью функции window.print () в JavaScript.Я использую React.js для него, и когда я нажимаю Печать , он печатает то, что ему нужно.После этого, если я хочу напечатать другой счет, он показывает данные первого, который я пытался распечатать.Неважно, сколько разных купюр я пытаюсь распечатать, всегда отображаются данные с первого, который я пытался напечатать.Единственное решение, которое я нашел, это перезагрузить страницу, но затем мне нужно снова войти в систему, и я теряю состояние приложения.

Есть ли способ, как я могу перезапустить функцию window.print (), чтобы не получать данные с предыдущих отпечатков?

Ниже приведен пример кода, который печатает

 printElement(elem) {
    var domClone = elem.cloneNode(true);

    var $printSection = document.getElementById("printSection");

    if (!$printSection) {
        var $printSection = document.createElement("div");
        $printSection.id = "printSection";
        document.body.appendChild($printSection);
    }

    $printSection.innerHTML = "";
    $printSection.appendChild(domClone);
    window.print();
    window.close();
}

print() {
    this.printElement(document.getElementById("divToPrint"));
}

1 Ответ

0 голосов
/ 24 августа 2018

DOM не обновляется к моменту выполнения функции печати, допускается кратковременная задержка.

printElement(elem) {
    var domClone = elem.cloneNode(true);

    var $printSection = document.getElementById("printSection");

    if (!$printSection) {
        var $printSection = document.createElement("div");
        $printSection.id = "printSection";
        document.body.appendChild($printSection);
    }

    $printSection.innerHTML = "";
    $printSection.appendChild(domClone);

    // Small delay of 0.5s
    setTimeout(() => {
        window.print();
        window.close();
    }, 500);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...