2010-02-24 6 views
4

페이지로드시 jquery가 많이 발생하여 내 요소 중 하나가 사라지는 원인이됩니다 (style = display : none;). jquery hide() 함수가 실수로이 요소에 적용되는 것 같아요. 그러나 어떤 문이 그것을 일으키는 지 찾을 수 없습니다.로드 중 페이지 요소를 변경하는 자바 스크립트 기능을 감지 하시겠습니까?

본질적으로 html 요소 (아마도 브라우저에서 실행할 수있는 하나)의 중단 점/수신기 역할을하는 javascript, firebug 등의 기능이나 도구가 있습니까? 어떤 기능이 페이지로드시 해당 요소에 영향을 주는지 확인하는 것이 좋습니다.

+0

당신은 물건을 선택적으로 주석 처리하고 언제 깨지는 지 지켜 볼 수 있습니다. –

답변

1

getters/setters를 사용하여 요소가 액세스되는 위치를 찾을 수 있습니다. 그러나, setter 메소드는 크롬에서 작동하지 않는 것 ... 그것은

myElement.style.__defineSetter__("backgroundColor", function(val) 
{ 
    var cur = arguments.callee; 
    var callLog = ""; 
    while(cur != null) 
    { 
    callLog = cur.caller + "\n" + callLog; 
    //alert(cur.caller); 
    cur = cur.caller; 
    } 
    alert(callLog); 
} 
); 

) 당신이 그것을 테스트 할 수 있도록하지만 ... 나는 = 추측, 지뢰밭 [파이어 폭스 베타]의 최신 버전과 함께 작동 오,하지만 실제로 변수를 "설정"하는 것은 아닙니다. 그렇게하기 위해서 더미 변수를 정의하고이를 설정합니다. 그런 다음 getter [__defineGetter__과 함께]를 정의하면 해당 값을 반환합니다.

+0

+1 - 나는 이것에 대해 잘 모릅니다. 그래서 좋은 발견입니다. 하지만, 스택을 경고하는 대신, 함수를 'function() {debugger;}'로 설정하여 중단 점을 설정할 수 있습니다. }' – nickf

4

하! 방금 내가 원하는 대답을 찾았습니다. Firebug는 HTML 탭에서 "break on mutate"기능을 사용하여 javascript 파일에서 HTML 요소를 변경하는 행을 표시합니다. Firebug 1.5 버전이며 오늘 발표 된 새로운 1.5.2 업데이트가 아이콘을 옮겼습니다. 그래서 나는 그것을 알아 차리고 운이 좋았다는 것을 발견했습니다! 당신의 시도들에 대한

http://www.softwareishard.com/blog/firebug/firebug-15-break-on-next/

감사합니다!

+0

또한 Firebug의 브레이크 포인트 참조는 일반적으로 매우 유용합니다. http://getfirebug.com/doc/breakpoints/demo.html –

관련 문제