1

dom :로드 Prototype javascript 프레임 워크를 사용하여 처리 할 이벤트가 있습니까?
내가 프로토 타입을 사용하여 프리 로더를 구현했습니다 하는 다음과 같이 찾고 :에 그것은 작동하고Prototype 프레임 워크의 자바 스크립트 이벤트 계층

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  

꽤 좋은 : 다음

Event.observe(window,"load",preload); 
function preload(){ 
    if($('wrapper')) 
     $('wrapper').setStyle({"display":"block"}); 
    if($('loading')) 
     setTimeout('$("loading").fade({duration: 5.0});',4000); 
} 

I는 열 높이 fixatioan에 대한 사용하여 다른 핸들러를했습니다

IE를 제외한 모든 브라우저! IE가 onload 핸들러 목록에 두 번째 핸들러를 추가하지 않는 것 같습니다. 따라서 첫 번째 핸들러가 열 높이를 가져 오려고 할 때 0을 반환합니다. 여전히 0으로 표시됩니다.

부하 & DOM보다 다른 이벤트가이 : 취급이 날 나가야 할로드!?

답변

0

AFAIK 같은 이벤트가없고 심지어 dom : loaded 이벤트가 Prototype 개발자에 의해 구현되어 JS에서 기본 이벤트가 아닙니다. 사용자 에이전트는 IE 같은 일부 대체되고있는 경우, 당신은 확인하실 수 있습니다, 또한

function foo(){ 
    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'}); 
    } 
} 

function bar() { 
    // One msec delay. 
    setTimeout(foo, 1); 
} 

Event.observe(window, "load", bar); // or window.observe("load",bar); 

: 당신은 두 번째 핸들러의 수행에 지연을 만들기 위해 도우미를 사용 할 수 있습니다, 그래서 첫 번째는 먼저 수행됩니다 그렇지 않으면이 방법을 사용하십시오.

+0

와우! 많은 감사합니다, 그것은 매력처럼 작동합니다^o^알다시피, 우리는 이전에 우리가 이전에 언급 한 질문에 그러한 해결책을 제시하지 않고 대답했습니다. 어쨌든 문제를 발견하는 데 3 일이 걸렸습니다. –

0

preload()를 완료 한 후에 두 번째 함수를 호출 할 수 있습니까?

또는 preload()를 호출 한 후 직접 호출하지 않으려면 플래그를 설정 한 다음 섹션 함수에서 시간 초과를 설정하여 첫 번째 실행이 완료 될 때까지 대기하십시오.

주문이 중요한 경우 기능 간 통신이 필요합니다.

+0

전체 스크립트 알고리즘으로 인해 첫 번째 문자 다음에 두 번째 문자를 직접 호출 할 수 없습니다. 나는 너의 제안에 대해 일하고있다. Ryan에게 감사한다. –