C-Lodop提示“有窗口已打开,先关闭它(持续如此请刷新页面)!”

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的启动界面也出不来,第一次点击就提示,后来远程了下,删除共享打印机后,重新安装就好了。)

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