2013-06-10 2 views
5

아래 코드는 Firefox 브라우저에서 올바르게 작동합니다. 그러나 크롬이 아닙니다. 아래 코드의 문제점은 무엇입니까? 당신이 callFn을 할당 할 때Chrome에서 Onscroll 기능이 작동하지 않습니다.

document.onscroll = function() { console.log('Works in Chrome!'); };

+1

신체의 'overflow' 속성을 어떻게 설정합니까? –

답변

0

, 그것은 작동 onscroll 핸들러.
함수를 실행하지 않으려는 경우 함수에 대한 참조를 지정하려고합니다.

또한 document 또는 document.body이 아닌 window 개체에서 전체 문서에 대한 스크롤 기능이 더 잘 작동하는 것 같습니다.

window.onscroll = Test.callFn; 
+1

-1 Chrome에서 작동하지 않습니다. –

+0

Chrome에서 작동합니다. 새 탭 (Ctrl + T)을 열고 개발자 도구 (Shift + Ctrl + I)를 열고 위의 코드 스 니펫을 복사하여 붙여 넣은 다음 창을 스크롤하면 "Chrome에서 작동합니다!"가 표시됩니다. 콘솔에 나타납니다. –

+4

당신은 심각 할 수 없습니다. Chrome에서 작동합니다. –

6

당신은 ()을 원하지 않는 : 당신이 document.onscroll 이벤트에 이벤트 핸들러를 첨부 할 경우

window.onload = function() 
{ 
    document.body.onscroll = Test.callFn; 
} 

var Test = new function() 
{ 
    this.callFn = function() 
    { 
     console.log("Calling this function"); 
    } 
} 

감사

크롬에서
+0

안녕하세요, 오타를 유감스럽게 생각합니다. 처음에는 위의 형식의 함수를 호출했습니다. 그러나 그것은 크롬에만 효과가 없습니다. – sprabhakaran

4

오늘도 비슷한 문제가있었습니다. html 요소가 onscroll 속성이 때 onscroll 이벤트를 할당하는 가장 좋은, 그래서 내가 body 요소가 onscroll 속성이있는 경우 크롬에 onscroll 이벤트가 작동하고 있음을 발견

window.onload = function() 
{ 
    window.onscroll = function() 
    { 
     console.log("Calling this function"); 
    } 
} 

하지만 IE에서 작동 것 : document.bodywindow에 당신은 변경할 수 있습니다 청취자는 window 개체입니다.

추신. 스크롤 한 픽셀 수를 확인하려면 document.body.scrollTop 대신 window.pageYOffset을 사용하십시오 (위에서 설명한 크롬 및 IE와 동일한 상황).

0

가능성 중 하나는 각각의 문이 다른 JS 메서드를 호출하는 페이지에 두 개의 window.onscroll 문이 있다는 것입니다. 포함 된 파일과 페이지로드에있는 모든 메소드를 점검하십시오.

관련 문제