如果我在运行Android 4.0.4的webview中加载一个大型html文件,然后按下其中的输入框,它会正常工作。然而,当我点击键盘上的按钮(例如"a"甚至使用语音输入)时,整个屏幕变白,只有最初选定的输入框可被用户看到。这在4.0.3和4.1中完全没有问题。这只发生在webviews长于屏幕的情况下(即需要滚动的情况)。
在经过多次尝试后,我想到了这个方法。
原因是你在 input.onblur 完成工作之前就已经执行了你的操作。
因此,其中一个解决方案就是使用 setTimeout() 包装你的操作。
以下是一个示例:
var ipt = document.createElement('input');
ipt.type = "text";
document.body.appendChild(ipt);
ipt.onkeyup = function(e){
e=e||window.event;
var key = e.keyCode || e.which,
ipt = e.target || e.srcElement;
if(key==13){
ipt.blur();
setTimeout(function(){
//DO YOUR STUFF HERE !!!
}, 100);
}
}