【发布时间】:2009-05-27 00:55:42
【问题描述】:
我有一个带有“获取更多帖子”按钮的 ajax 脚本,可以插入几个屏幕/视口的信息。这样做时,文档会在某些时候失去焦点,因此空格键的默认行为(向下翻页)在 Firefox 中不起作用。
如何重新聚焦文档以恢复默认行为?哪些组件控制这种行为?
它适用于 Chrome 和 IE(令人惊讶),但不适用于 FF。
我尝试了一个回调函数:document.body.focus() 和 document.getElementById('someClickableElement').click(),但没有运气。
如果我真的在内容显示后点击了页面,那么我可以用空格键再次滚动。
由于这是一个经常使用的功能,点击“加载更多”,再次点击,然后空格向下翻页会很烦人。
想法?有什么建议吗?
编辑: 好的,所以我在界面上使用了一个 YUI 按钮(只是一个漂亮的 html“按钮”元素,带有一些 css 样式)。我用链接替换了它,我不再有这个问题了。
有趣的是,它在 Chrome 和 IE 中按预期工作,我什至没有使用 YUI 侦听器来处理事件(只是好看的按钮)。它由 jquery 的 live 方法(事件委托的 b/c)处理。
同样有趣的是,我无法以编程方式完成我在物理上可以做的事情(即“点击”)。
即使有一些 YUI 错误,firefox 似乎也应该能够通过一些 javascript 操作重新获得焦点。
很奇怪。仍然有任何输入表示赞赏(尝试更多 JavaScript 建议?)。我对我目前的界面有点投入。
【问题讨论】:
-
当额外的元素被添加到 DOM 时,为什么文档会失去焦点?您如何请求和插入这些元素?
-
也许文档并没有完全失去焦点。这只是我描述它的方式,因为我必须再次单击文档(将其聚焦,有点)才能使默认行为再次起作用。我用 jQuery 追加插入它。
标签: javascript jquery firefox yui