3.提示“C-Lodop未准备好”或“WebSocket没准备好”


 
问题一:提示"WebSocket没准备好,点确定继续"..
原因:调用打印语句(print或preview等)时机太早,在页面第一次加载完成后有几百毫秒时间等待WebSocket通讯服务准备完成。

解决方法有两种,
方法一if (needCLodop()) {
window.On_CLodop_Opened=function(){
OpenPreview();
//调用打印方法打印,详见样例22
window.On_CLodop_Opened=null;
};
} else
window.onload = function(){OpenPreview();};

方法二:提前自行判断一下之后再打印,自行判断方法如下:
if (LODOP.webskt && LODOP.webskt.readyState==1){ 准备好} else {没准备好}


问题二:提示“C-Lodop没准备好”
可能原因:
1.调用C-Lodop云打印时机太早
解决方法:在页面加载完之后调用打印,也可以用如下方法提前判断自行处理:
if (!LODOP && document.readyState!=="complete") {没准备好} else {...}
2.采用了https协议与目前C-Lodop云打印普通协议不相配,建议使用新版适合https的C-lodop云打印。
适合https的C-lodop云打印下载: http://www.c-lodop.com/download.html
或在https中调用http资源:
相关资料:如何在HTTPS里调用HTTP资源不出现提示框
http://www.tuicool.com/articles/VZ3ANj;
允许https页面里嵌入http资源
http://eyehere.net/2015/allow-insecure-content-on-secure-pages/
使用相对Url无缝切换HTTP-HTTPS
http://www.imkevinyang.com/2009/09/%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%AF%B9url%E6%97%A0%E7%BC%9D%E5%88%87%E6%8D%A2http-https.html
3. edge浏览器,正常情况下访问web服务没有问题,访问本地超文本文件打印时会提示"C-Lodop未准备好",原因:edge作为Windows应用程序与IE不同,因此出于安全考虑默认是网络隔离。为了解决这个问题,我们需要使用cmd命令修改安全策略来解决。
  对于edge 10158版后的执行如下语句:
    CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
  如果有“无效的参数错误”提示执行如下语句:
    CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
  对于更早的edge历史版本,执行如下语句:
    CheckNetIsolation LoopbackExempt -a -n=Microsoft.Windows.Spartan_cw5n1h2txyewy
如下图: