vue 引入 com 组件的js js调用vue方法

最近公司项目,客户要求兼容 ie9,我他妈。。。滚回去老老实实搬砖,主要是集成高拍仪,之前是用websocket 做的,支持ie和谷歌,但是偏偏ie9 不支持 websocket ,你说气人不,好了废话说了一堆,直接上吧

-1. 以 script 形式 引入 js 包含 事件一并引入,将com组件js axCam_Ocx.js放在项目 public 下,
js 里面的 event MessageCallback(type,str) 当时试了几十次,在vue写 event事件,但是参数总是无法获取,最后,幸亏能原生的把 js和事件一并引进来,万幸啊
在这里插入图片描述
2.axCam_Ocx.js 内容

if(type==0){
    //视频开始显示
  }else if(type==1){
    //拍照的路径
    window.InfoTextCallback(0,str);
  }else if(type==4){
    //摄像头数量变化时
    // var camNum = parseInt(str);
    // GetDevCount(camNum);
     InfoTextCallback(26,str);
  }else if(type==2){

   //ShowInfo("智能连拍数量 = "+str+"\r\n"); 
 }else if(type==3){
  // ShowInfo("定时连拍数量 = "+str+"\r\n"); 
 }else if(type==5){
    //图片保存失败
    InfoTextCallback(8,str);
 }else if(type==6){

   var strsMessage= new Array(); 
  strsMessage = str.split("**");
  for(var i=0;i<strsMessage.length-1 ;i++){
   var num = 9+i;
   InfoTextCallback(9+i,strsMessage[i]);
 }
 var picBase64 = axCam_Ocx.GetICPicture();
 InfoTextCallback(19,picBase64);

}else if(type==7){
 //未发现身份证模块
 InfoCallback(0x1e);
}else if(type==8){
    //base64
    InfoTextCallback(5,str);
}else if(type==9){
    LoadOver();
}else if(type==10){
    //base64
   InfoTextCallback(24,str);
}else if(type==11){
  var value = parseInt(str);
   if(value==0){
   InfoCallback(0x33);
  }else  if(value==1){
     InfoCallback(0x29);
  }
}else if(type==12){
    //base64
   InfoCallback(0x35);
}else if(type==13){
    //base64
    InfoTextCallback(28,str);
}else if(type==14){
    //base64
    InfoCallback(0xbb);
}else if(type==15){
  var value = parseInt(str);
    if(value==1){
       InfoCallback(0x50);
    }else  InfoCallback(0x51);
}else if(type==16){
    InfoCallback(0x52);
}else if(type==17){
    InfoCallback(0x53);
}else if(type==18){
  var value = parseInt(str);
       if(value!=0){
       //InfoCallback(0x54);
       InfoTextCallback(37,value);
    }else  InfoCallback(0x55);
}else if(type==19){
    InfoTextCallback(28,str);
    axCam_Ocx2.FaceDoubleOK();
}


  1. 上面 axCam_Ocx.js 里面的 InfoTextCallback()InfoCallback()方法 都是 vue里面的方法,
    所以需要将 vue里面对应的方法映射成 window 方法即可,js里面就可以调到,下面是将我 vue里面的三个方法映射成window方法,那个js 方法里的window 可写可不写。
   mounted(){
      window.InfoTextCallback = this.InfoTextCallback
      window.InfoCallback = this.InfoCallback
      window.LoadOver = this.LoadOver
    },
  • 4.还有一点,如果引入的com组件 代码在本地测试是ok的,但是部署到服务器就出问题,那一定的 ie浏览器的问题,打开 ie internet 选项,点击安全 重新配置里面的 自定义级别 ,什么跨域 启用 筛选禁用等等
  • 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值