我的应用程序中有一个树形菜单,单击菜单项时,它会在 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/