使用jquery.jqprint.js 实现的打印功能,IE9不能进行打印预览、火狐打印空白界面

博客介绍了在使用jquery.jqprint.js进行打印时遇到的问题,包括IE9无法进行打印预览和火狐打印出现空白页面。针对IE9的ExecWB错误,通过检测浏览器版本号避免预览并直接打印。对于火狐的空白页问题,发现数据未正确写入iframe,通过调整赋值方法解决了问题。作者欢迎提供更好的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示的内容SCRIPT438: 对象不支持“ExecWB”属性或方法

首先解决IE9不能打印预览的问题:

       查找了一大推资料 ,有两种说法:一种是IE的安全性级别太高;一种是需要安装什么   微软web 浏览器,这两种解决方法对于我的问题都没有起到效果。无奈之下:只能将IE9 这个浏览器的版本号获取出来,不进行预览,直接进行信息打印。

jquery 获取浏览器版本号的方法(需要引入的插件为:jquery-migrate-1.1.0.js):

var version = $.browser.version;

 

原以为IE9和IE9的兼容版的版本相同,还纠结这块怎么处理、、、、、、没想到IE9的版本号为(9.0)IE9兼容版的版本号为(7.0),这就好办了。。。。。。没有办法只能再切打印了

接下来解决火狐不能打印的问题:

 var doc = $iframe[0].contentWindow.document;   //兼容各种浏览器
	doc.designMode = "on";
   	doc.open();
   	doc.write(data);    
   	doc.close();
   	//alert("页面输出的内容为"+doc.body.innerHTML); //doc.body.innerHTML 只有IE支持,其他的浏览器无效  
   	doc.designMode ="off";

 

进行获取的数据信息打印,代码如下:

	$iframe[0].contentWindow.focus();
	$iframe[0].contentWindow.print();

打印出来的界面始终为空白,很是无语。经过一番查询,就想着是否数据真正写入iframe  ,于是采用代码:

	alert(document.all.print_iframe.contentDocument.body.innerHTML)

弹出框是空白。最后只好进行重新复制,最终问题解决,赋值的代码如下:

	document.all.iframe名.contentDocument.body.innerHTML=data;  //data 代表html数据信息

亲们:我这是没有办法的办法,路过的如果有什么更好的解决方法,可以给我留言,提前谢谢了哈。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值