javascript - 如何在 Opera 中聚焦 div 以进行键盘滚动

标签 javascript lightbox opera

我有一个类似灯箱的 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/

相关文章:

javascript - JQuery Tablesorter 添加带有过滤器的列

javascript - 附加选项标签与在不同选择标签中选择的值

javascript - 当推送到数组时,Typescript undefined 不是一个对象

javascript - 打开任何模型/灯箱时隐藏 YouTube

javascript - 是否有替代方法来替换这些 anchor 链接?

css - 在 Opera 中定位文本元素时,字体大小会增加额外的空间

c# - 如何将 JSON 对象转换为特定格式

jquery - 对象没有方法 lightbox

javascript - 添加name属性导致ID值成为IE和Opera中文档对象的属性?

javascript - 在 Opera 中使用 javascript 获取文本区域值