일반적으로 JS 좋은 점에서 호환성 문제, 다음 자신의 사용은 JS 파일에 넣어 수있을 때 나는 몇 가지 일반적으로 사용되는 치료 방법이 호환 컴파일이있다, 당신이 직접 소개 할 때 사용할 필요가 더 편리 할 것입니다.
인라인이 아닌 스타일에 먼저 접근
작동 및 getStyle (ELE, ATTR) { 경우 (ele.currentStyle) { 반환 ele.currentStyle을 [ATTR]; } 다른 { 반환 (ELE getComputedStyle를 거짓 ) ATTR]; } }
[주] ARRT 여기 브래킷 구문을 사용하는 변수.
이벤트 객체의 두 번째 인수
// 이벤트 객체 호환 가져 오기 기능 getEvent (ELE) { var에 E = || ELE window.event를을; }
셋째, 이벤트 버블 링
// 이벤트 버블 링 호환 기능 stopBubble (E) { IF (e.stopPropagation) { e.stopPropagation (); } 다른 { e.cancelBubble = true로 ; } }
넷째, 브라우저의 기본 동작을 방지하기 위해
// 기본 이벤트 호환 중지 기능 방지 (이브) { var에 E = || 이브 window.event를, IF (e.preventDefault) { ; e.preventDefault을 () } 다른 사람을 { e.event.returnValue = false로 ; } }
팁 : 매우 간단한 표현이 코드 플러스 거짓 반환의 마지막 줄에,도있다, 우리는주의해야한다 코드가 실행 뒤에 사용하는 경우,이 코드는 특정 이벤트의 마지막 줄에 작성되지 않았거나 에주의를 지불합니다.
다섯째, 이벤트는 이벤트를 바인딩 및 삭제
1. 바인드 청취 스타일 이벤트
// 监听式绑定 함수 addEvent (ELE 입력, CB) { 경우 (ele.addEventListener) { ele.addEventListener (유형, CB); } 다른 경우 (ele.attachEvent) { ele.attachEvent ( + "ON" 형, CB); } 다른 { [ELE의 = + 형 "ON"] CB; } }
2. 이벤트를 기울인다 유형을 삭제
// 删除绑定 함수 romoveEvent (ELE 입력, CB) { 경우 (ele.removeEventListener) { ele.romoveEventListener (유형, CB); } 다른 경우 (ele.detachEvent) { ele.detachEvent ( + "ON" 형, CB); } 다른 { [ELE의 = + 형 "ON"] 널 ; } }
여섯째, 키보드 이벤트
// 키보드 호환 감지 기능 KEYc (이브) { var에 E = || 이브 window.event를; var에 KEYc = e.keyCode || e.which, 반환 KEYc을; }