c-lodop显示“有窗口已打开,先关闭它(持续如此时请刷新页面)!”
如果连续执行多个预览语句等导致的,可以预先判断一下,并可以自定义修改窗口已打开的提示,该默认提示的位置如本博客的下图http://localhost:8000/CLodopfuncs.js:
通过语句后可修改连续打开窗口导致的提示,在执行打印前判断一下。
会产生本提示的动作语句如下
PREVIEW、PRINT_DESIGN、PRINT_SETUP、PRINTA、GET_DIALOG_VALUE,以上语句需要等待返回,无结果时会有以上提示。其他语句不会有该提示,如:PRINT()。
可能1:有窗口已打开,还没关闭
已打开的窗口被浏览器窗口抢了焦点,遮挡到后面了;
已打开的窗口最小化了;
查看windows任务栏,和浏览器后面,是否窗口最小化或被浏览器遮挡了。
可能2:代码问题,连续执行两个如预览等语句。
可能3:前面的语句执行很慢,结果还没返回又点击了新的打开语句。
如果是前两个窗口问题,也可以使用f (CLODOP.blOneByone==true)判断一下再执行。
按住alt+tab可以查看windows当前打开的应用窗口,仔细查找是否有c-lodop的。
该提示只会在c-lodop产生,如果有窗口已打开,再点击lodop会是禁止点击,点击无效。
测试代码说明:
方法1:正常情况,执行一次打印设计LODOP.PRINT_DESIGN();
方法2;连续执行两个LODOP.PRINT_DESIGN();,会弹出c-lodop本身的提示,该提示在clodopfuncs.js里。
方法3:在打印前,判断一下是否有窗口已经打开了,弹出自定义的提示。
方法4:在打印前,判断一下是否为c-lodop,如果为c-lodop,判断一下是否有窗口已经打开了,弹出自定义的提示。
测试代码:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <a href="javascript:prn1_preview()">打印设计执行一个正常</a><br> <a href="javascript:prn2_preview()">打印设计执行两个</a><br> <a href="javascript:prn3_preview()">打印设计执行两个,已有窗口打开提示,lodop会报错</a><br> <a href="javascript:prn4_preview()">打印设计已有窗口打开提示2判断是c-lodop再判断</a><br> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(14,27,100,20,"新加文本1"); LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; function prn2_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(14,27,100,20,"新加文本1"); LODOP.PRINT_DESIGN(); LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; function prn3_preview() { LODOP=getLodop(); if (CLODOP.blOneByone==true){alert("(ゝω・)先关闭前面的窗口,才能打开新的窗口(ゝω・)。");} else {LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(14,27,100,20,"新加文本1"); LODOP.PRINT_DESIGN();} //LODOP.PREVIEW(); }; function prn4_preview() { LODOP=getLodop(); if (LODOP.CVERSION) {if (CLODOP.blOneByone==true){alert("(ゝω・)先关闭前面的窗口,才能打开新的窗口。(ゝω・)");}} else {LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(14,27,100,20,"新加文本1"); LODOP.PRINT_DESIGN();} }; </script>
图示:
效果:
关于本测试的描述:
1.点击一次,正常情况,弹出一次打印设计。
2.连续执行两个LODOP.PRINT_DESIGN();,会弹出c-lodop的默认提示。
3.点一次后,不关闭再点一次,弹出自己写的判断的自定义提示。
(如果是lodop插件,非c-lodop,这里会报错,注意这个判断只能在c-lodop下使用)
4.点一次后,不关闭再点一次,每次都先判断是否是c-lodop,再判断是否打开了窗口,弹出自己写的判断的自定义提示。
如何只使用c-lodop,可修改needclodop方法返回true,也可用欢迎页面的方式,可参考查看本博客的相关博文:
特别注意:该文中的判断,只使与c-lodop。
而lodop,打开没关窗口会禁止点击,如果代码有两个,会弹出一个,关掉接着弹出第二个。
简短问答:
提示窗口已打开
参考http://www.c-lodop.com/faq/pp27.html
是否有共享打印机,删除共享打印机后,重新安装试试。
(之后又客户共享打印机出问题,也是老提示这个,而且c-lodop的启动界面也出不来,第一次点击就提示,后来远程了下,删除共享打印机后,重新安装就好了。)