vue里面写原生JS函数
程序员文章站
2022-03-17 12:57:44
...
最近在做安卓混合开发时,遇到几个坑,在vue写的界面里面调用原生js去调用安卓插件agentweb的安卓条码扫描功能,
最后是agentweb调用web的原生JS出问题,问题1:在vue界面里面放原生的function在哪里?经过多轮研究,问题1终于解决了,但又遇到个问题2:原生函数把值给了input控件,但vue取不到input的值。查查资料又解决了。
解决问题一:原生JS函数放在哪里?要放在导出html模板文件里面,而不是放在写的vue界面里面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>SCAN_Demo</title>
<script type="text/javascript">
function SCANRsult(key){
document.getElementById("SCANText").value = key;
document.getElementById("bt_SCAN").click();
}
</script>
</head>
<body>
<div id="app"></div>
</body>
</html>
解决问题二:原生的JS把值赋给input,vue取不到绑定的input值。
document.getElementById("DemoInput").dispatchEvent(new Event('input'));
解决问题二:返回的条码怎么知道放到哪个Input里面。
<template>
<div style="display:none;">
<input id="SCAN" v-model="dongtai" data-msg="gem01" ref="dataMsg" @keyup.enter="handleinput" />
<button @click="bt_click()" id="bt_SCAN">Add 1</button>
</div>
</template>
<script>
//调用按钮
scan_click(){
document.getElementById("SCAN").dispatchEvent(new Event('input'));
this.dt_name=this.$refs.dataMsg.dataset.msg;
this[this.dt_name]=this.dongtai;
},
bt_click(){
document.getElementById("SCAN").dispatchEvent(new Event('input'));
this.dt_name=this.$refs.dataMsg.dataset.msg;
this[this.dt_name]=this.dongtai;
},
</script>
上一篇: 修改IE命令“查看源文件”更改为使用UltraEdit打开
下一篇: js中函数参数的调用