我有一个类似灯箱的 div,它出现在页面上以呈现可滚动的内容。在 FF、IE 和 Chrome 中,允许用户使用箭头和 pagedown/up 键滚动灯箱就像为其分配 tabindex 并调用 .focus() 一样简单。
在 Opera 中,.focus() 不执行任何操作,制表符/箭头/页面键将继续作用于后台页面中的任何制表符元素。
这是一个说明问题的 fiddle :http://jsfiddle.net/9W943/5/
我见过很多关于如何聚焦 div 的例子,但似乎没有人承认 tabindex 方法在 Opera 中不起作用。有什么方法可以强制 Opera 聚焦灯箱吗?如果做不到这一点,最好的解决方法是什么 - 监听关键事件,然后“手动”滚动灯箱? (或者我可以重定向事件吗?)
我尝试在灯箱上调用 .click() ,并创建+调度一个假点击事件 - 因为键盘滚动在单击后可以正常工作 - 但都不起作用。
我也很好奇为什么非输入元素可聚焦不是标准的,因为它们可以并且确实接收键盘事件!如果不是可以通过键盘进行交互的元素,如何定义焦点元素?
最佳答案
这是一个已知的错误(内部 DSK-269802) - 不幸的是,据我所知,没有很好的解决方法:-/
我昨天自己也遇到了这个问题,并且会给这个错误一个“碰撞”——也许我们可以将它融入到一些正在进行的开发工作中。我建议您忽略该错误,只像在 Opera 中工作一样编写代码,因为有一天它会的。
关于javascript - 如何在 Opera 中聚焦 div 以进行键盘滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360026/