【发布时间】:2011-12-28 21:13:28
【问题描述】:
在 dom:loaded 和 load 之间是否有任何事件需要使用 Prototype javascript 框架进行处理?
我已经使用原型实现了一个预加载器,它看起来像这样:
Event.observe(window,"load",preload);
function preload(){
if($('wrapper'))
$('wrapper').setStyle({"display":"block"});
if($('loading'))
setTimeout('$("loading").fade({duration: 5.0});',4000);
}
然后我有另一个用于列高固定的处理程序,即:
Event.observe(window,"load",function(){
var bottomExtraOffset = (Prototype.Browser.IE) ? 100 : 130;
if(parseInt($$('.col1')[0].getStyle('height')) > parseInt($$('.col2')[0].getStyle('height')))
$('wrapper').setStyle({'height' : parseInt($$('.col1')[0].getStyle('height'))+bottomExtraOffset+'px'});
else
$('wrapper').setStyle({'height' : parseInt($$('.col2')[0].getStyle('height'))+bottomExtraOffset+'px'});
});//observe
它在除 IE 之外的任何浏览器中都能正常工作!似乎 IE 没有将第二个处理程序附加到 onload 处理程序列表,所以当第一个处理程序试图获取任何列的高度时,它返回 0 因为它仍然显示为无。
除了 load 和 dom:loaded 之外,还有其他事件需要处理并让我摆脱这个!?
【问题讨论】:
标签: javascript internet-explorer events event-handling prototypejs