杰表技术论坛 's Archiver

seannell 发表于 2016-1-14 17:58

IE11下不识别jatoolsprinter的print方法

管理员您好,我在IE11下使用jatoolsprinter插件的免费版,但是出现了print方法不能识别的情况,麻烦帮我看下是什么原因。
具体如下。

(0)操作系统是win7,64位,浏览器是IE11非兼容模式。
(1)setup.exe已经正确安装,并且官网上的样例都好用。
我本地工程通过下面的代码引入jatoolsprinter:

[code]var div =  document.createElement("div");
div.innerHTML = "<OBJECT ID=\"jatoolsPrinter\" style=\"display: none\" CLASSID=\"CLSID:B43D3361-D975-4BE2-87FE-057188254255\" codebase=\"unieap/pages/form/jatoolsP.cab#version=1,2,0,2\"></OBJECT>";
document.body.appendChild(div);[/code]


(2)然后我作了判断
[code]if(typeof(jatoolsPrinter.print)=='undefined')[/code]
发现jatoolsPrinter对象是存在的,但是jatoolsPrinter.print的值总是undefined,所以打印功能不好用。
麻烦帮我看下这是什么原因。


补充:
我换了一种引入方式
[code]div.innerHTML = "<iframe ID=\"jatoolsPrinter\" style=\"display: none\" CLASSID=\"CLSID:B43D3361-D975-4BE2-87FE-057188254255\" codebase=\"unieap/pages/form/jatoolsP.cab#version=1,2,0,2\"></iframe>"; [/code]

出现了另外的情景,就是jatoolsPrinter.print可以识别,但是jatoolsPrinter.printPriview却始终识别不出来,也就是预览功能总是不好用。


项目上还比较着急,麻烦帮我看下,谢谢啦!

admin 发表于 2016-1-15 09:41

可能是加载不到引起,这样处理试试:
1. 在 </body> 前声明 <object>来加载控件;
2. 把你的服务器加入ie的信任域名。

注意:
1.试图用iframe加载控件,根本是错误的;
2.不要用 innerHTML 加载控件,因为此方法加载控件,可能由于加载没完成,导致 printPreview识别不到;
3.不要用老版本的打印控件,jatoolsP.cab太早了。

seannell 发表于 2016-1-15 11:46

按你说的在页面上直接写<OBJECT>,然后调用新版的jatoolsPrinter.cab,好用了。
非常感谢!

另外再问一个问题:在设置打印的时候pagePrefix和page_div_prefix有什么差别?项目里使用的是page_div_prefix,但在IE11下好像识别不了,是因为新版没有这个设置吗?


或者哪里能找到jatoolsPrinter的升级指南,我们工程里使用了老版打印插件(09年左右)不支持IE11,我们需要如何升级jatoolsprinter来支持IE11?

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.