因为各种原因,没有跟框架来写h5,遇到一些坑,特此铭记:
1.ios端textarea标签中maxlength定的值,如果输入”换行符“,限制会不准确,比如2000,只能输入1995左右,就无法输入
解决方案: 使用oninput方法,利用sustring截取字符串
var len = val.length; //获取标签内容的value值,然后计算长度,利用长度限制,截取显示的内容
if (len >= 2000) {
val = val.substring(0, 2000);
}2.移动端h5页面,点击输入框,弹出键盘;收回键盘时,页面没有随着键盘收回而归位;
点收回键盘的时候,触发了输入框的onblur事件,事件中利用 window.scroll(0, 0);就可以了
3.移动端h5页面,android会弹出输入法遮挡输入框;
(1)可以直接在onfocus时 target.scrollIntoView(); target是指当前触发的输入框
记得要设position:absolute; top:0;
4.输入项的onblur事件先于并遮挡了 button的点击事件触发,so可以给onblur事件setTimeout 300ms,做一下延迟;
5.android 端内嵌入h5页面,上传文件按钮点击无效,因为android的webview禁止了<input type="file"/> 功能实现,需要android修改原生的传图方法,让h5调用,待续……