C-Lodop设置页面一加载就打印

C-Lodop由于是服务不是np插件,调用打印语句(print或preview等)时机太早,在页面第一次加载完成后有几百毫秒时间等待WebSocket通讯服务准备完成,在没完成的时候会提示“C-Lodop未准备好”“WebSocket没准备好”。新版修改了该提示,变为“网页还没下载完毕,请稍等一下再操作.”只是修改了提示内容,还是同一问题。

正常进入web页面进行打印,一般是先进入页面,然后点击页面的某个按钮进行打印,在打印按钮里获取LODOP对象。
如果是要一进入页面就打印,或想避免因没准备好久点了这个按钮导致的这个提示,可以加延迟,或加等C-Lodop准备好再执行打印语句的方法。

可以用JS加延迟,把获取LODOP对象这件事延迟一下,例如延迟500毫秒。
setTimeout("prn1_preview()","500"); //500毫秒后执行prn1_preview()函数,只执行一次。

也可以加等c-lodop准备好,在调用该方法的语句,由于是混合部署,需要判断一下,:
if (needCLodop()) {
//C-Lodop----begin----
window.On_CLodop_Opened=function(){
prn1_preview(); //prn1_preview()是自己写的调用打印方法
window.On_CLodop_Opened=null;
};
//C-Lodop----end----
} else
window.onload = function(){prn1_preview();}; //使用lodop控件时的调用

如果只使用C-Lodop,则不需要附加判断,直接用//C-Lodop----begin----和//C-Lodop----end----这两个注释之间的代码即可。

目前最新版修改了该提示,最新版提示的是“网页还没下载完毕,请稍等一下再操作”
可以在LodopFuncs.js里查看一下,这提示的来源此文件,如果提示的是标题的,应该是旧版的LodopFuncs.js。

原文地址:https://www.cnblogs.com/huaxie/p/9593208.html