在ios下面,内嵌的h5页面,在碰到input下被自动的放大,首先想到的第一种方法是加meta标签
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
霹雳扑棱的加上,发现么有用。 找啊找,第二种方法,vue项目下,在main.js下添加代码
created () {
window.onload = function () {
// 阻止双击放大
let lastTouchEnd = 0
document.addEventListener('touchstart', function (event) {
if (event.touches.length > 1) {
event.preventDefault()
}
})
document.addEventListener('touchend', function (event) {
let now = (new Date()).getTime()
if (now - lastTouchEnd <= 300) {
event.preventDefault()
}
lastTouchEnd = now
}, false)
// 阻止双指放大
document.addEventListener('gesturestart', function (event) {
event.preventDefault();
})
}
}
突然发现,好使了,开森~
但是万万没想到,又出现了新的情况,想撞墙。 情况是这样的,ios机型的普通情况下,用了以上两种办法是完全OK,但是:在打开了后端返回的模板页面,再回到我们带有input的页面,当点击input的时候,啊~,页面被放大了。凄凄惨惨戚戚~ 后来绞尽脑汁,哦,后端传过来的模板,meta标签不完全,怪不得失效了。既然他传过来的内容不加上,我来帮他加上~
let length = strContent.indexOf('<title></title>')
let content = strContent.slice(0,length) + '<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">'+ strContent.slice(length)
哇~脑秃的路程结束了,再会~