技术频道


关于 iOS Safari 键盘 keyup 事件

现代化大部分的浏览器,都可以再键入 [中文] 后自己筛选内容,唯有 iOS 还要在按一下 [换行] 才可以。这里 [换行] 按钮正确翻译应该是 [输入] / [回车],人家是 [return]。

iOS 的 Safari 坑:如果你要触发文字输入框的自动触发事件,要避免 iOS 跟其他体验不一样,需要将 [keyup] 事件,改成 [input propertychange] 才可以。

MARK:早期上古时代的 IE9 以下的浏览器,keyup 事件是也没反应的,要使用 IE 特有的 onpropertychange 事件才行,这个部分 iOS 的 safari 和 IE 竟然在同一个时代 ..

原生 JS:

document.getElementById("input").onpropertychange = keys(); 
document.getElementById("input").addEventListener("input", keys, false);

function keys(){
    // 触发事件
}

jQuery:

$('input').on("input propertychange", function(){
    ...
});

对于可能需要的 preventDefault:

if (e.key === "Enter") {
	e.preventDefault();
}

iOS Safari 关于 keyup JS 的扩展阅读:


 

CommandNotFound ⚡️ 坑否 - 其他频道扩展阅读:



发表评论