问题:用户调整微信的字体大小之后,会使mobileSelect.js的liHeight计算值变大,从而导致无法选中选项。
解决方案:强制设置h5页面字体的大小不受微信设置字体的大小影响
安卓和IOS都需设置,可写在app.vue中。其中ios系统只要设置css,安卓需要设置js(注意:需引入微信sdk jweixin-1.6.0.js),具体代码如下:
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App',
mounted () {
// 强制不让微信的字体大小调整效果在该h5页面生效
this.$nextTick(() => {
setTimeout(() => {
this.init()
}, 300)
})
},
methods: {
init () {
if (typeof WeixinJSBridge === 'object' && typeof WeixinJSBridge.invoke === 'function') {
this.handleFontsize()
} else {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', this.handleFontsize, false)
} else if (document.attachEvent) {
document.attachEvent('WeixinjsBridgeReady', this.handleFontsize)
document.attachEvent('onWeixinJSBridgeReady', this.handleFontsize)
}
}
},
handleFontsize () {
// 设置网页字体为默认大小
WeixinJSBridge.invoke('setFontSizeCallback', {
'fontSize': 0
})
// 重写设置网页字体大小的事件
WeixinJSBridge.on('menu: setfont', () => {
WeixinJSBridge.invoke('setFontSizeCallback', {
'fontsize': 0
})
})
}
}
}
</script>
<style>
html {
-webkit-text-size-adjust: 100% !important;
text-size-adjust: 100% !important;
-moz-text-size-adjust: 100% !important;
}
</style>