javascript - 在 IE 中将焦点设置到 iFrame

标签 javascript jquery iframe extjs focus

我的应用程序中有一个树形菜单,单击菜单项时,它会在 iFrame 中加载一个 url。我喜欢将焦点设置在 iFrame 中加载的页面元素中。

我正在使用这段代码,它在除 IE 之外的所有浏览器中都能完美运行:

var myIFrame = $("#iframeName");
myIFrame.focus();
myIFrame.contents().find('#inputName').focus();

我尝试了所有不同的选项,例如使用 setTimeout,但没有机会。

页面加载后,当我按下 tab 键时,它转到第二个输入,这意味着它已经在第一个输入上,但它不显示光标!

我正在使用 ExtJS 和 ManagedIFrame 插件。

感谢任何帮助。

最佳答案

您需要调用 iframe 的 window 对象的 focus() 方法,而不是 iframe 元素。我不是 jQuery 或 ExtJS 方面的专家,所以我下面的示例两者都没有使用。

function focusIframe(iframeEl) {
    if (iframeEl.contentWindow) {
        iframeEl.contentWindow.focus();
    } else if (iframeEl.contentDocument && iframeEl.contentDocument.documentElement) {
        // For old versions of Safari
        iframeEl.contentDocument.documentElement.focus();
    }
}

关于javascript - 在 IE 中将焦点设置到 iFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2045707/

相关文章:

javascript - 通过 Laravel 5.7 PHP 加密对象并通过 VueJS Javascript 解密

jquery - 将 on(keyup) 绑定(bind)到 jQuery 中的动态元素(Twitter Bootstrap + typeahead)

javascript - 如何刷新 Iframe url 并显示加载图像

javascript - 发送错误信息的正确方法,但代码仍在运行

javascript - x || 之间的任何区别[] 和 x ?? [] 在 JavaScript 中?

javascript - 我可以使用源映射将 .less 更改为 a.min.css 并且仍然能够在开发工具中查看 .less 文件吗?

jquery - 获取图像的原始宽度和高度

javascript - 如何选择光标前的整个单词?

html - 如何在 Chrome 中的 Java 小程序上显示 <div>

html - 在其他 iframe 中跨元素使用 accesskey 在 Chrome 中不起作用