firefox火狐 window.print() 只能打印出一页

问题描述:

使用firefox火狐浏览器使用window.print()方法,打印出来的结果在打印设置里怎么调都是一页,打印不全。但是该网页用ie或者chrome就可以正常的打印出多页。

火狐版本:52.9

解决思路:

这个问题在百度上只能搜出来一个有用的结果,就是说修改页面css样式,但是到底怎么修改没说。百度靠不住了,只能谷歌。

谷歌搜出来一个大神给出的建议,检查页面使用了overflow和display属性的元素。最后还说一句很吓人的话:“排查起来可能要花一两天了”。不过大概的方向已经知道了。

页面上的元素其实却是很多,但是影响打印分页的无非就是<html><body><div>这三种标签。

<html><body>很好找,分别只有一个,设置如下样式:

html,body{
	overflow: visible;
}

<div>再一想也好找,找到<body>下,覆盖整个页面,最大的那个div就可以了,在这个div的style里加上这个属性就试试:

style="display: block;"

重新打印,终于可以正常打印了,问题解决。

如果修改了样式页面有问题的话,可以尝试使用overflow和display的其他值尝试,或者在div外再嵌套一层专门解决打印的样式。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,实现了在页面上添加一个表格和书签功能: ```html <!DOCTYPE html> <html> <head> <title>带书签的表格页面</title> </head> <body> <h1>这是一个带书签的表格页面</h1> <table> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> <tr> <td>张三</td> <td>25</td> <td>男</td> </tr> <tr> <td>李四</td> <td>30</td> <td>女</td> </tr> <tr> <td>王五</td> <td>20</td> <td>男</td> </tr> </table> <button onclick="addBookmark()">添加书签</button> <script> function addBookmark() { if (window.sidebar && window.sidebar.addPanel) { // Firefox window.sidebar.addPanel(document.title, window.location.href, ""); } else if (window.external && ('AddFavorite' in window.external)) { // IE window.external.AddFavorite(location.href, document.title); } else if (window.opera && window.print) { // Opera var elem = document.createElement('a'); elem.setAttribute('href', window.location.href); elem.setAttribute('title', document.title); elem.setAttribute('rel', 'sidebar'); elem.click(); } else { // Other browsers alert('请使用Ctrl+D来添加书签!'); } } </script> </body> </html> ``` 在这个代码中,我们首先创建了一个简单的表格,然后在页面上添加了一个按钮,触发 `addBookmark()` 函数。这个函数会检测当前的浏览器类型,然后使用不同的方式添加书签。在这个例子中,我们使用了以下三种方式: 1. Firefox:使用 `window.sidebar.addPanel()` 方法添加书签; 2. IE:使用 `window.external.AddFavorite()` 方法添加书签; 3. Opera:创建一个 `<a>` 元素,并将其 `rel` 属性设置为 `'sidebar'`,然后触发 `click()` 方法添加书签。 最后,如果检测到其他浏览器,则提示用户使用 Ctrl+D 来添加书签。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值