一旦用户完成打印html+Javascript,就删除页面上的页码



一旦用户点击ctrl+p,这个解决方案就可以为我的HTML添加页码。

用户完成打印作业后,我如何让脚本删除页码?(不确定如何使用javascript删除函数(

我使用这个解决方案来实现JavaScript代码:https://stackoverflow.com/a/64884005

window.onload = addPageNumbers;
function addPageNumbers() {
var totalPages = Math.ceil(document.body.scrollHeight / 1123);  //842px A4 pageheight for 72dpi, 1123px A4 pageheight for 96dpi, 
for (var i = 1; i <= totalPages; i++) {
var pageNumberDiv = document.createElement("div");
var pageNumber = document.createTextNode("Page " + i + " of " + totalPages);
pageNumberDiv.style.position = "absolute";
pageNumberDiv.style.top = "calc((" + i + " * (297mm - 0.5px)) - 40px)"; //297mm A4 pageheight; 0,5px unknown needed necessary correction value; additional wanted 40px margin from bottom(own element height included)
pageNumberDiv.style.height = "16px";
pageNumberDiv.appendChild(pageNumber);
document.body.insertBefore(pageNumberDiv, document.getElementById("content"));
pageNumberDiv.style.left = "calc(100% - (" + pageNumberDiv.offsetWidth + "px + 20px))";
}
}
<html>
<head>
<style type="text/css">
@page {
size: A4;
margin: 0; 
}
body {
margin: 0;
}
</style>
</head>
<body>
<div id="content">
Lorem ipsum....
</div>
</body>
</html>

Lorem ipsum....
</div>
</body>

大家好,欢迎来到堆栈溢出。

简而言之,为添加的每个div指定一个唯一的类。打印页面后,运行一个脚本来选择具有该类的所有div并将其删除。

在你的代码行之后

pageNumberDiv.style.height = "16px";

添加这个

pageNumberDiv.classList.add("page-num");

然后添加功能

function removePageNumbers(className) {
let elements = document.getElementsByClassName(className);
while(elements.length > 0){
elements[0].parentNode.removeChild(elements[0]);
}
}

并称之为

removePageNumbers("page-num")

最新更新