所以 - 我有一个页面,其中包含一个 textarea 和一个动态创建的 IFrame,它使用 adobe acrobat 插件显示 PDF。
最初,文本区域是聚焦的。
我希望 textarea 被聚焦,但是 IFrame 在加载 pdf 时会窃取焦点。
在 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 确实有焦点!
我勒个去??!?
有任何想法吗?