如何通过代码移除JS打印表单时出现的about:blank
解决打印时顶部出现“about:blank”的问题
问题出在你打开了具体URL的窗口后再写入打印内容,浏览器可能会保留原窗口地址相关的默认文本,或是写入的内容结构不完整导致浏览器补全时出现异常。可以通过以下修改解决:
修改后的打印函数
function printPageArea(areaID){ var printContent = document.getElementById(areaID); // 打开空白窗口,而非指定URL var WinPrint = window.open("", "_blank", "width=800,height=600"); // 写入完整的HTML结构,避免浏览器自动补全默认内容 WinPrint.document.write(` <html> <head> <title>打印表单</title> <style> /* 自定义打印样式,优化输出效果 */ @media print { body { margin: 0; padding: 1rem; } } </style> </head> <body> ${printContent.innerHTML} </body> </html> `); WinPrint.document.close(); WinPrint.focus(); WinPrint.print(); WinPrint.close(); }
关键改动说明
- 将
window.open的第一个参数改为空字符串,打开空白窗口,避免原URL页面的加载干扰。 - 写入完整的HTML结构(包含
<html>、<head>、<body>标签),防止浏览器自动补全时生成额外的默认文本。 - 可选添加打印媒体查询样式,调整打印时的布局、边距,提升输出美观度。
内容的提问来源于stack exchange,提问作者Singaar Thiruvanantha Perumal
相关产品推荐
相关产品推荐

