lodop_funcs.js 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. var CLodopJsState;
  2. //====加载C-Lodop的过程(用script元素动态引用主文件CLodopfuncs.js)====
  3. function loadCLodop() {
  4. if (CLodopJsState == "loading" || CLodopJsState == "complete")
  5. return;
  6. CLodopJsState = "loading";
  7. var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement;
  8. var JS1 = document.createElement("script");
  9. var JS2 = document.createElement("script");
  10. var JS3 = document.createElement("script");
  11. //优先调用本地(Localhost)8000端口服务:
  12. JS1.src = "http://localhost:8000/CLodopfuncs.js?priority=2";
  13. //如果失败,则调用本地18000端口:
  14. JS2.src = "http://localhost:18000/CLodopfuncs.js?priority=1";
  15. //最后如本地无C-Lodop时,则演示通过本服务远程打印:
  16. // JS3.src = "/app/shop/view/public/js/CLodopfuncs.js";
  17. JS1.onload = JS2.onload = JS3.onload = function() {CLodopJsState = "complete";}
  18. JS1.onerror = JS2.onerror = JS3.onerror = function(evt) {CLodopJsState = "complete";}
  19. head.insertBefore(JS1, head.firstChild);
  20. head.insertBefore(JS2, head.firstChild);
  21. head.insertBefore(JS3, head.firstChild);
  22. }
  23. //本例演示所有浏览器都调用C-Lodop:
  24. function needCLodop() {
  25. return true;
  26. }
  27. //执行加载:
  28. if (needCLodop()) {
  29. loadCLodop();
  30. }
  31. //====获取LODOP对象的主过程:====
  32. function getLodop(oOBJECT, oEMBED) {
  33. var LODOP;
  34. var strCLodopUpdate = "<br><font color='#FF00FF'>Web打印服务CLodop需升级!点击这里<a href='CLodop_Setup_for_Win32NT.zip' target='_self'>执行升级</a>,升级后请刷新页面。</font>";
  35. try {
  36. try {
  37. LODOP = getCLodop(); //获得主对象(getCLodop是在CLodopfuncs.js定义的)
  38. } catch (err) {}
  39. // if (!LODOP && CLodopJsState !== "complete") {
  40. // if (CLodopJsState == "loading")
  41. // alert("网页还没下载完毕,请稍等一下再操作.");
  42. // else
  43. // alert("没有加载CLodop的主js,请先调用loadCLodop过程.");
  44. // return;
  45. // }
  46. if (!LODOP) {
  47. // document.body.innerHTML = strCLodopInstall_1 + (CLodopIsLocal ? strCLodopInstall_2 : "") + strCLodopInstall_3 + document.body.innerHTML;
  48. layer.open({
  49. type: 1,
  50. area: ['450px'],
  51. content: "Web打印服务CLodop未安装启动,点击这里<a class='text-color' href='http://www.lodop.net/download.html' target='_black'>去下载安装</a><br />(若此前已安装过,可<a class='text-color' href='CLodop.protocol:setup' target='_self'>点这里直接再次启动</a>)" //这里content是一个普通的String
  52. });
  53. return;
  54. } else {
  55. if (CLODOP.CVERSION < "4.0.9.9") {
  56. layer.open({
  57. type: 1,
  58. area: ['450px'],
  59. content: "Web打印服务CLodop版本过低,需升级,请点击这里<a class='text-color' href='http://www.lodop.net/download.html' target='_black'>去下载安装</a><br />(若此前已安装过,可<a class='text-color' href='CLodop.protocol:setup' target='_self'>点这里直接再次启动</a>)" //这里content是一个普通的String
  60. });
  61. return;
  62. }
  63. if (oEMBED && oEMBED.parentNode)
  64. oEMBED.parentNode.removeChild(oEMBED);
  65. if (oOBJECT && oOBJECT.parentNode)
  66. oOBJECT.parentNode.removeChild(oOBJECT);
  67. }
  68. //清理旧例子的object或embed元素(避免乱提示干扰理解):
  69. if (oEMBED && oEMBED.parentNode) oEMBED.parentNode.removeChild(oEMBED);
  70. if (oOBJECT && oOBJECT.parentNode) oOBJECT.parentNode.removeChild(oOBJECT);
  71. return LODOP;
  72. } catch (err) {
  73. alert("getLodop出错:" + err);
  74. }
  75. }