首页 > 其他分享 >js---局部打印功能

js---局部打印功能

时间:2023-04-03 14:04:01浏览次数:46  
标签:body prnhtml doc 打印 js --- iframe document

最近在开发一个项目,需要用到PC端打印的功能,很多都会去引入一个第三方的JS来做,其实打印功能很简单,调用浏览器的打印功能就可以实现。

代码示例:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>打印</title>
</head>
<body>

<button class="printBtn" id="printBtn">打印</button>

<h1>这块内容不需要打印</h1>
<!--startprint-->
<div class="print-content" style="background: red;">
    <h1>我是需要打印内容开始.....</h1>
    <img src="images/img1.jpg" alt="">
    <h1>我是需要打印内容结束.....</h1>
</div>
<!--endprint-->
<h1>这块内容不需要打印</h1>


<script type="text/javascript">
var printBtn = document.getElementById('printBtn');
printBtn.onclick = function(){
    doPrint();
}
function doPrint() {   
    bdhtml=window.document.body.innerHTML;   
    sprnstr='<!--startprint-->';   
    eprnstr='<!--endprint-->';   
    prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);   
    prnhtml=prnhtml.substring(0, prnhtml.indexOf(eprnstr));   
    window.document.body.innerHTML=prnhtml;  
    window.print();   
}

// 此处为图文打印
function printQrCode(idstr) {
  const imgUrlStr = 'https://weiliicimg9.pstatp.com/weili/l/905526294583705654.jpg';
  let iframe = document.createElement('IFRAME'),doc = null,img = new Image(); 
  img.src = imgUrlStr;
  iframe.setAttribute('style', 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;');
  document.body.appendChild(iframe);
  doc = iframe.contentWindow.document;
  doc.write('<h2>Print Pictures and Words</h2>');
  doc.body.append(img);
  doc.close();
  iframe.onload = function() { //解决图片显示不了的问题
    iframe.contentWindow.focus();
    iframe.contentWindow.print();
    document.body.removeChild(iframe);
  };
}
</script>

</body>
</html>

打完收工!

标签:body,prnhtml,doc,打印,js,---,iframe,document
From: https://www.cnblogs.com/e0yu/p/17282842.html

相关文章

  • 全网最详细中英文ChatGPT-GPT-4示例文档-复杂函数快速转单行函数从0到1快速入门——官
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • 快慢指针-小记
    快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。最后,慢指针就是中位数。这个理论,是建立在中位数=n/2的基础上。同时,适用于:单向链表查找。这个理论,需要一个简易的规律总结即可自证。[1,2,3]l......
  • GPT-1论文阅读
    简介题目:ImprovingLanguageUnderstandingbyGenerativePre-Training翻译:改善语言理解通过生成式预训练点击下载pdf概要:自然语言理解包含很多问题:文本蕴含、问答、语义相似度评估、文献分类。大量的无标签文本语料库是丰富的,打标签语料库是匮乏的,分别去训练模型很难有良好效......
  • GPT-2论文阅读
    简介题目:LanguageModelsareUnsupervisedMultitaskLearners翻译:语言模型是无监督多任务学习者点击下载pdf概要:以往的自然语言处理任务:问答、翻译、阅读理解、总结,需要使用特定的有标签数据集进行监督训练。本文仅仅使用从网页搜集的数据集WebText,而没有使用任何监督数据,15亿......
  • k8s教程(Volume篇)-PVC详解
    文章目录01引言02PVC详解2.1参数配置2.1.1资源请求(Resources)2.1.2访问模式(AccessModes)2.1.3存储卷模式(VolumeModes)2.1.4PV选择条件(Selector)2.1.5存储类别(Class)03Pod使用PVC3.1举例3.1.1举例:默认模式(Filesystem)3.1.2举例:存储卷模式为块设备(Block)04文末01......
  • 【论文速递】ICLR2018 - 用于小样本语义分割的条件网络
    【论文速递】ICLR2018-用于小样本语义分割的条件网络【论文原文】:CONDITIONALNETWORKSFORFEW-SHOTSEMANTICSEGMENTATION(Workshoptrack-ICLR2018)【作者信息】:KateRakellyEvanShelhamerTrevorDarrellAlexeiEfrosSergeyLevine获取地址:https://openreview.net/pdf?......
  • 【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性
    【论文速递】MMM2020-电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能【论文原文】:ANewLocalTransformationModuleforFew-shotSegmentation【作者信息】:YuweiYang,FanmanMeng,HongliangLi,QingboWu,XiaolongXuandShuaiChen获取地址:https://arxi......
  • 【论文速递】Arxiv2018 - 加州伯克利大学借助引导网络实现快速、准确的小样本分割
    【论文速递】Arxiv2018-加州伯克利大学借助引导网络实现快速、准确的小样本分割【论文原文】:Few-ShotSegmentationPropagationwithGuidedNetworks【作者信息】:KateRakelly∗EvanShelhamer∗TrevorDarrellAlexeiEfrosSergeyLevine获取地址:https://arxiv.org/pdf/180......
  • 【论文速递】WACV2023 - 循环相似注意力的小样本医学图像分割
    【论文速递】WACV2023-循环相似注意力的小样本医学图像分割【论文原文】:Few-shotMedicalImageSegmentationwithCycle-resemblanceAttention获取地址:https://arxiv.org/pdf/2212.03967.pdf博主关键词:小样本学习,语义分割,自监督,原型摘要:近年来,由于医学影像应用需求的不断提高......
  • 【论文速递】WACV2023 - CellTranspose:用于细胞实例分割的小样本域自适应
    【论文速递】WACV2023-CellTranspose:用于细胞实例分割的小样本域自适应【论文原文】:CellTranspose:Few-shotDomainAdaptationforCellularInstanceSegmentation获取地址:https://openaccess.thecvf.com/content/WACV2023/papers/Keaton_CellTranspose_Few-Shot_Domain_Adap......