最近的项目里面有一项功能需要集成扫描仪,在安装了扫描仪驱动后,还需要在项目里面集成其ActiveX控件,主要的问题就在于我需要扫描仪的某些方法加入一些其他操作。由于这个东西是不开源的,在Google上搜索良久,也看到很多人都在寻找办法,最后居然告诉我一个ActiveX控件和vue不能共存的结论,什么鬼?最后不得不请教公司大佬,现在把我的这个实现贴出来分享一下。
解决方案
- 在需要使用扫描仪的功能对应的组件上引入控件,并将其指定为全局对象,假设为scan.js:
let modelue = {
name: 'scan',
template: `...
<div style="display: none">
<object id="ScanObj" classid="clsid:xxxx" codebase="xxx" width="0" height="0" ref="ScanObj">
</object>
</div>
...
`
data () {},
methods: {},
created() {
<!--在created中将该实例指定为全局对象。-->
window.scan = this