使用iframe不跳转页面直接弹出打印框

使用iframe 不跳转页面直接弹出打印框

打开模板页可以直接跳出打印,也可以在主页面通过点击事件使用iframe调用模板页面

主页面
<button type="button" id="printBtn">打印</button>
<iframe frameborder="0" src="" id="printFrame" style="width: 0;height: 0;"></iframe>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
    $("#printBtn").click(function() {
        $("#printFrame").attr('src', 'demo.html?id='+1);
    })
</script>
模板所在页面
<div class="main-box">
    <img id="barcode" />
</div>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<!-- 转换一维码的插件 之前有写最简单的使用方法 https://blog.csdn.net/weixin_45810581/article/details/109404052 -->
<script src="JsBarcode.all.js"></script>
<script>
	function request(paras) {
        var url = location.href;
        var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
        var paraObj = {}
        for (i = 0; j = paraString[i]; i++) {
            paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
        }
        var returnValue = paraObj[paras.toLowerCase()];
        if (typeof(returnValue) == "undefined") {
            return "";
        } else {
            return returnValue;
        }
    }
    // 获取iframe传过来的值(也可作用于页面跳转获取传值)
    var id = request("id");
    
    var dataList = [10086, 12306, 12315, 12122]
    var printHtml = "";
    printHtmls = creatTB(dataList);
    function creatTB(checkMsg) {
        var html = "";
        for (i = 0; i < checkMsg.length; i++) {
            $("#barcode").JsBarcode(checkMsg[i]);
            html = html + $(".main-box").prop("outerHTML")
            //进行分页
            html = html + "<div id='page1' style='height:111px;page-break-after:always'></div>";
        }
        return html;
    }
    window.document.body.innerHTML = printHtmls; //需要打印的页面 
    setTimeout(function() {
        window.print();
        // location.reload();
    }, 500);
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值