일반적인 함정의 크로스 브라우저 호환성[마감]
-
03-07-2019 - |
문제
무엇 대부분의 일반적인 브라우저 호환성 문제에 걸쳐 중요한 데스크톱 브라우저?
아 dup 시기 바랍니다.가 문제가 당신을 실행 했습니다.I'm hoping 목록에 대해 자기 정렬합니다."IE sux"지 않은 함정,그러나 전화를 위한 투표입니다.
[편집]그렇다,나는 그것의 설문 조사-I'm not 게시 답변에서 이를 수집트-난제에 관심이 무엇을 알고 사람들이 일반적으로 실행합니다.
해결책
퀴크 스 모드 주의를 기울여야하는 많은 차이점에 대한 포괄적 인 목록이 있습니다!-)
- 그러나 그는 그물에있는 대부분의 다른 사이트와 블로거들과 마찬가지로 자신의 방식에 집중되어 있으며, 그 결과 사소한 버그와 불일치가 발생합니다 ...
다른 팁
Internet Explorer 6의 투명한 PNG, 특히 Alphaimageloader 사용의 공통적 인 JavaScript 해결 방법이 부작용을 가질 수 있기 때문입니다. IE6 잠금.
CSS- 현대식 브라우저에서 크게 분류되었지만 여전히 문제는 특히 레이아웃과 관련이 있습니다.
이것은 중요하지는 않지만 사이트를 설계 할 때 거의 항상 다시 돌아 오게됩니다.
캐싱 및 이전 페이지 해시.
메모리 관리는 문제가 될 수 있습니다. 다른 쓰레기 수집기는 다른 유형의 원형 참조에 질식하지만 Firefox는 복잡한 물체를 제대로 정리하는 데 능숙 해지고 있습니다.
내가 찾는 IE6 는 아주 작은 제한을 허용할 스택을 깊이가 있습니다.
한 지점에서 나는 좋은 재귀적 함수의 위치를 얻을하는 요소에 문서
function getOffsetTop (element) {
var offset = 0;
if (element.offsetTop)
offset = offset + element.offsetTop;
if (element.offsetParent)
offset = offset + getOffsetTop(element.offsetParent);
return offset;
}
불행하게도 때 이 메소드를 호출하면 요소에 대해 매우 깊은 노드의 계층 구조,즉 불평을 초월할 스택 크기(나를 잊지 정확한 오류 메시지가).의 주위에 얻을 내가 이것을 사용하는 데 필요한 반복적인 접근 방식을 유지하는 스택 크기의 작은:
function getOffsetTop (element) {
var offset = 0;
if (element.offsetTop)
offset = offset + element.offsetTop;
var parent = element.offsetParent;
while (parent) {
if (parent.offsetTop)
offset = offset + parent.offsetTop;
parent = parent.offsetParent;
}
return offset;
}
내가 생각할 수있는 가장 일반적인 것은 이번 주에만 두 번만 나에게 문제가되었습니다. IE6과 Box 모델 버그입니다. 찾아라!
구체적으로, 내가 생각하는 문제는 개발자가 DIV를 떠났을 때입니다. 생각합니다 모두 래퍼 디바리 안에 맞지만 약간 더 크기 때문에 IE6은 아닙니다.
따라서 세 개의 열이 아니라 2 개로 끝나고 세 번째는 화면의 맨 아래에 아래로 내려갑니다.
+-------------------------------+
|+------+ +-----------+ +------+|
|| | | | | ||
|| foo | | bar | | baz ||
|| | | | | ||
|| | | | | ||
|+------+ +-----------+ +------+|
+-------------------------------+
하지만 당신은 얻는다 :
+-------------------------------+
|+--------+ +------------+ |
|| | | | |
|| foo | | bar | |
|| | | | |
|| | | | |
|+--------+ +------------+ |
|+------+ |
|| | |
|| | |
|| baz | |
|| | |
|| | |
|+------+ |
+-------------------------------+
xmlhttprequest를 수행하고 함수를 실행할 때 'on readreadstatechange'xmlhttprequest.responsetext 속성에는 Firefox의 해당 지점에서로드 된 데이터가 포함되어 있지만 IE (및 safari)는 포함되지 않습니다.
이는 실행 진행률 계량기를 표시하는 데 사용하기 위해 해당 브라우저에서 부분 데이터의 캡처를 방지합니다.
내가 만든 모든 고정 너비, 중앙 사이트 (즉, '마진 : 0 Auto'를 사용하여 모든 것을 중앙에 포함시키기 위해 포함)는 테스트하고 '핵'을 적용 할 때까지 IE6에서 작동하지 않습니다. 이것은 매번 나를 얻습니다.