目前需要解决的问题有两个:
1、调用 ActiveX 控件函数
传统方式,如下。
document.getElementById('objMqtt').init()
其他方式,未考证。
参考链接:https://forum.vuejs.org/t/vue-ocx-vue/20324/6
参考链接:https://www.jianshu.com/p/5f9c6f05cda1
2、Vue.js 与 ActiveX 事件
方法一:使用 attachEvent 或者 addEventListener 方法。
据说在IE8-10可用,不过未能实现。
参考链接:https://blog.csdn.net/youyouwoxing1991/article/details/88649638
方法二:动态生成脚本,渲染到页面上。IE 9-11,测试成功。
1.在methods中,新增事件触法的方法。
wakeUp(msg) { console.log('receive:' + msg) }
2.在methods中,新增方法,用于动态生成ActiveX控件事件绑定。
initActiveXObject () { var scriptStr = document.createElement('script') scriptStr.setAttribute('for', 'obj1') scriptStr.event = 'UserStopInfo(strMsg)' scriptStr.appendChild(document.createTextNode(activeXListener.wakeUp(strMsg)')) document.body.appendChild(scriptStr) window.activeXListener = this }
3.在mouted方法中,初始化ActiveX控件。
mounted () { this.initActiveXObject() }
参考链接:https://www.jb51.net/article/158432.htm
来源:https://www.cnblogs.com/Currention/p/11024215.html