【发布时间】:2012-02-20 10:59:48
【问题描述】:
我有一个类似灯箱的 div,它出现在页面上以呈现可滚动的内容。在 FF、IE 和 Chrome 中,允许用户使用箭头和 pagedown/up 键滚动灯箱就像为其分配一个 tabindex 并调用 .focus() 一样简单。
在 Opera 中,.focus() 什么都不做,并且制表符/箭头/分页键将继续作用于背景页面中的任何制表位元素。
这里有一个小提琴来说明这个问题:http://jsfiddle.net/9W943/5/
我已经看过很多关于如何聚焦 div 的示例,但似乎没有人承认 tabindex 方法在 Opera 中不起作用。有什么办法可以强制 Opera 聚焦灯箱?如果做不到这一点,最好的解决方法是什么 - 监听关键事件,然后“手动”滚动灯箱? (或者我可以重定向事件吗?)
我尝试在灯箱上调用 .click() 并创建+调度一个虚假的点击事件 - 因为键盘滚动在您点击后可以正常工作 - 但都不起作用。
我也很好奇为什么非输入元素可聚焦不是标准的,因为它们可以并且确实接收键盘事件!如果不是可以通过键盘交互的元素,你如何定义一个焦点元素?
【问题讨论】:
标签: javascript lightbox opera