【发布时间】:2010-10-21 15:18:13
【问题描述】:
所以 - 我有一个页面,其中包含一个 textarea 和一个动态创建的 IFrame,它使用 adobe acrobat 插件显示 PDF。
最初,文本区域被聚焦。
我希望 textarea 获得焦点,但加载 pdf 时 IFrame 会窃取焦点。
在 Firefox 中,将 textarea 重置为焦点元素是很简单的。
我通过监听 iframe“加载”事件然后在文本框上调用 .focus() 来做到这一点。
M$ IE 不会为动态创建的 Iframe 触发 onload 事件,因此要确定它何时准备就绪,我使用 IFrame 的 readyState 属性:
var ieIframeReadyHandler = function() {
if( iframe.readyState=="complete" ) {
textarea.focus();
} else {
setTimeout(ieIframeReadyHandler, 100);
}
}
setTimeout(ieIframeReadyHandler, 100);
注意:我不听 iframe 的 readystatechanged 事件,因为它似乎不会为 readyState=="complete" 案例触发!!
那么当这段代码执行时会发生什么?.....好吧,什么都没有。 Iframe pdf 仍然是焦点,但是如果我使用 document.activeElement 检查哪个元素具有焦点(以前这只是 IE,但是 firefox 3 现在支持这一点)我被告知 textarea 确实有焦点!!
什么鬼??!?
有什么想法吗?
【问题讨论】:
-
IFRAME的DOM类型是什么(文件后缀...)
-
不确定 iframe 的类型是什么意思?据我所知,type 不是 Internet Explorer 的 DOM 元素的属性。您是指内容的文档类型吗?我通过设置 src 属性指向 pdf...
标签: internet-explorer pdf iframe adobe focus