在Firefox中将焦点设置为iframe正文/内容?

Posted

技术标签:

【中文标题】在Firefox中将焦点设置为iframe正文/内容?【英文标题】:set focus to iframe body/content in firefox? 【发布时间】:2010-12-03 06:16:23 【问题描述】:

我有一个 ifram,它具有隐藏的可见性。 我点击按钮 - iframe 将可见,我想专注于它的正文/内容。 因为现在我必须点击按钮然后进入 iframe,所以点击两次。我想一键搞定,但不知道如何在Firefox中对焦。

在资源管理器中没问题:

var iframe_window = window.frames["myFrame"];
iframe_window.document.body.focus();

为 Firefox 尝试了很多示例,但它们不起作用。有人知道如何在Firefox中做到这一点吗?谢谢。

【问题讨论】:

为什么要使用 frame 和 iframe !!! (生病) 做 rte html 编辑器之类的东西。没有比使用 iframe 更好的主意。不知道是否可以不使用 iframe。 【参考方案1】:

尝试首先将焦点设置为iframe_window,然后再将焦点设置为您的实际内容:

iframe_window.focus();
iframe_window.contentDocument.body.focus();

【讨论】:

【参考方案2】:

iframe_window.contentDocument.body.focus();

工作?

【讨论】:

使用时怎么样 var iframe_window = document.getElementById('myFrame');将 myFrame 作为 iframe 上的 id 属性? 是的,我有 'myFrame' 作为 id 属性和 name 属性,但它仍然不起作用【参考方案3】:

我认为您可能需要真正关注 iFrame 内部的某些内容; iFrame 本身不会对焦点做任何事情,但也许您可以将焦点放在其中的 DIV,甚至是小部件?

【讨论】:

【参考方案4】:

尝试将焦点设置到

【讨论】:

【参考方案5】:

并非每个元素都支持.focus()。您可以使用键盘/鼠标以编程方式聚焦元素吗?

焦点可以转到元素表单元素或“a”标签或将 contant-editable 属性设置为 true 的跨度。

在 iframe 中找到这样一个元素并尝试专注于它。应该工作!

【讨论】:

焦点也可以转到具有tabindex 属性的元素。【参考方案6】:

我遇到了同样的问题(仅在 firefox 中),我似乎已经通过仅将焦点设置在 iframe 上解决了它您确定 iframe已完全加载。在我的 iframe html 中:

<body onLoad="init();>

iframe 页面内的 javascript

this.init = function()
    parent.focusframe();

这个javascript在父窗口中:

this.focusframe = function()
    var fr = document.getElementById("gameframe");
    fr.contentWindow.focus();

【讨论】:

以上是关于在Firefox中将焦点设置为iframe正文/内容?的主要内容,如果未能解决你的问题,请参考以下文章

将焦点设置为 iframe 内容

无法在 Firefox 和 IE 中将框架高度设置为 100%

iframe 内元素的 Tabindex

AppKit 上的 SwiftUI - 在弹出窗口中将焦点设置为 TextField

Firefox 错误:如果 resize:vertical 设置为焦点,单击事件会丢失

如何将焦点设置在跨域的 iframe 上