iOS 8第三方键盘不注册javascript / jQuery keyup,keypress,keydown等

使用像Swiftkey这样的第三方键盘时,像keypress这样的javascript事件不会注册。 例如,Google地图自动填充function无法使用https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

看起来像一个iOS错误,但任何关于如何解决这个问题的想法?

这会有用吗?

 jQuery('#text_box').on('input propertychange paste', function() { // text has changed... }); 

的jsfiddle

您只需手动触发按键事件即可。

 $textBox = $('#text_box') // We don't want to search the dom more than we have to. setInterval(function(){ $textBox.trigger('keypress') }, 500) 

这绝对是一个混乱的解决方案,但它应该自动完成工作,以及等待按键的其他处理程序。

我找到了一个使用setInterval和解决方法的解决方案,从这里触发Google地方信息自动填充function

 setInterval(function() { if ($('input#mapSearch').is(':focus')) { google.maps.event.trigger(document.getElementById('mapSearch'), 'focus', {}); } }, 500);