浏览器打印部分区域内容

1.打开一个新窗口并把要打印的区域赋值给新窗口

var newWindow = window.open('打印窗口', '_blank')
var docStr = document.getElementById('print').innerHTML
newWindow.document.write(docStr)
newWindow.document.close()
newWindow.print()
newWindow.close()

缺点:新的页面没有样式

2.把doument.body内容替换成要打印区域的内容,打印完后再替换回去

var headstr = '<html><head><title></title></head><body>'
var footstr = '</body>'
var newstr = document.getElementById('print').innerHTML
var oldstr = document.body.innerHTML
document.body.innerHTML = headstr + newstr + footstr
window.print()
document.body.innerHTML = oldstr
return false

确定:把原来内容重新赋值给document.body后,页面链接不可点击,变成静态页面,必须重新刷新页面才可用

3.借助于iframe框架

var el = document.getElementById('print')
var iframe = document.createElement('IFRAME')
var doc = null
iframe.setAttribute('style', 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;')
document.getElementsByTagName('th')[0].setAttribute('style', 'text-align:left')
document.getElementsByTagName('th')[1].setAttribute('style', 'text-align:left')
document.getElementsByClassName('expand-trigger')[0].setAttribute('style', 'height:0px')
document.body.appendChild(iframe)
doc = iframe.contentWindow.document
doc.write('<div>' + el.innerHTML + '</div>')
doc.close()
iframe.contentWindow.focus()
iframe.contentWindow.print()
if (navigator.userAgent.indexOf('MSIE') > 0) {
document.body.removeChild(iframe)
}

 目前没有找到新的方法,后续会补新的方法

转载于:https://www.cnblogs.com/yang1215/p/7793942.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值