+-
Google Chrome取消上下箭头事件

我正在为网站制作一个AutoSuggest窗口小部件,其工作方式是,当用户在输入文本框中输入内容时,将显示带有建议的div,并且用户可以通过鼠标或上下箭头浏览它。每个单词都是单独建议的(与Google建议的单词在整个短语中的位置不同)。

我在使用Google Chrome浏览器输入框时遇到问题,因为当我按下向上或向下箭头时,浏览器的默认行为是-用carret跳转到文本框的末尾或开头(例如使用Home或End按钮)。在Firefox或Internet Explorer上没有这种影响。如何禁用此效果?

我从事件处理程序函数返回'false',并且还从此处使用了一个函数http://www.javascripter.net/faq/canceleventbubbling.htm,但carret在Chrome上仍在跳跃...

编辑:在Safari上具有相同效果...

我正在为网站制作一个AutoSuggest小部件,该小部件的工作方式是,当用户在输入文本框中输入内容时,将显示带有建议的div,并且用户可以通过...浏览它]]

0
投票
您是否尝试阻止默认行为?

window.addEventListener('keydown', function(e) { e.preventDefault(); ... }, false);

0
投票
并非完全是问题的真正解决方案,但我已经通过使用此功能完成了变通方法 http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/并在事件发生之前(或在击键事件被触发时不完全清除)捕获到炮弹的位置,然后在事件发生后将其重新设置。