2011-04-12 3 views
3

나는 IE supports the onresize event for any element을 알고 있지만 FireFox는 for the window object only을 알고 있습니다.크로스 브라우저 요소 onresize (HTML/JS)

저는 현대적인 브라우저에서이 기능을 필요로하기 때문에 현재 onresize를 에뮬레이트하기 위해 clientWidth/clientHeight 요소를 지속적으로 검사하는 (상당히 빠른) 간격 타이머를 사용하고 있습니다. 물론 이것은 매우 비효율적이며이 작업을 수행하는 브라우저 간 방법이 있는지 알고 싶습니다. 또는 FF/WebKit/IE에서 작동하는 다른 방법을 사용하여 타이머 메소드를 나머지 브라우저에서 사용할 수 있습니다.

, 일반 자바 스크립트에서 타겟팅 대신 JQuery와/프로토 타입 등

답변

0

당신은 당신이 그렇게 당신의 스크립트에 보내는 브라우저 확인해야합니다 jQuery를 사용하지 않는 경우의 :

if(!element.onresize != null) element.onresize += event; 
if(!element.onresizeAnotherHandler != null) element.onresizeAnotherHandler += event; 

I 몰랐는데 그렇게 쉬운 일이지만 일반적인 개념입니다.

편집 : Firefox 용 이벤트 처리기가없는 것처럼 보입니다. 당신이

  • 자바 스크립트

    를 사용하여 않는 CSS를 사용하여 크기 조정 핸들을 추가 한 경우

    • 것은 당신이 당신의 JS의 폭을 변경하는 경우 것은 단지 기능 업데이트

      function update(var nx, var ny){ 
          // do something with nx and ny 
      } 
      
    • 를 만들 :하지만 트릭이있다

      귀하의 CSS에서 80 %와 비슷한 것을 사용하고 있다면 window.onresize를 처리하십시오 :

      function resize(){ 
          alert(document.getElementById("test").style.width); 
      } 
      

      window.onresize = 크기 조정;

    다른 방법이없는 것으로 보입니다.

  • +0

    필요한 것은 요소의 크기가 변경되면 브라우저에서 직접 이벤트입니다. AFAIK 이것은 IE에서만 가능합니다 ... –

    +0

    지금은 불가능한 것처럼 보입니다. –