2012-05-16 3 views
2

IE9에서이 페이지 요소에 대한 onclick의 함수 인 button, div, img가 호출되지 않은 버그에 대한 해결책을 알고있는 사람이 있습니까? 따라서 요소를 클릭하면 아무 일도 일어나지 않습니다. 이것은 내가 개발하고있는 페이지에 나타났습니다. F12 디버거를 실행하면 문제가 사라집니다. 하지만 사이트 방문자가 F12를 클릭하여 페이지를 탐색하도록 요청할 수는 없습니다. 이것에 대한 해결책은 무엇입니까? 나는 엘리먼트가 자바 스크립트에서 동적으로 생성 될 때만 이것이 발생할 수 있다고 생각했다. 그러나 요소가 HTML에 정의되어있는 경우에도 마찬가지입니다.버튼 9, div, img를 IE 9로 onclick하지 않았습니다.

+2

은 좀 더 상황을하시기 바랍니다 제공하기 위해 코드를 게시 할 수 있습니까? –

+0

jQuery를 사용하여 click 이벤트를 바인딩 해봤습니까? 어쩌면 그게 문제를 해결하고 더 많은 IE를 안전하게 만들 수 있습니다. – Odinn

+0

IE9는 기본 사항에 대해 다른 브라우저와 매우 유사하게 작동합니다. 머리글을 확인하십시오. http://stackoverflow.com/questions/10305631/ie9-float-with-overflowhidden-and-table-width-100-not-displaying-properly –

답변

6

사용자가 개발자 도구를 열어 놓은 상태에서 코드가 작동한다고 언급했는데, 이는 코드에서 console.log 문을 사용하는 것이 가장 가능성이 높음을 의미합니다.

IE에서 개발자 도구가 열리지 않을 때 콘솔에 인쇄하면 자바 스크립트 예외가 발생하여 이벤트 처리기가 작동하지 않게됩니다.

이 문제를 해결하기 위해, if 문으로 콘솔 문을 모두 포장 :

if (console) { 
    console.log('foo'); 
} 
+0

정말 훌륭합니다! 저기에 대한 답변을 찾고있는 포럼에 많은 사람들이 있습니다. – user823527

+0

@ user823527 Internet Explorer 용으로 개발 한 많은 즐거움 중 하나 ... [관련] (http://www.vexite.com/images/2011/06/browser-war-illustration.jpg) – jbabey

+0

몇 시간 동안 디버깅 후 클릭 핸들러에 의해 호출 된 서브 루틴 내부에서 그러한'console.log' 문제를 발견했습니다. 그 힌트를 가져 주셔서 감사합니다! – alex

0

jQuery를 사용하십시오.

$('#myButton').click(function() { 
    // code goes here 
}); 

클릭 이벤트를 발생시키는 올바른 코드가 작동합니다.