문제

내가 작업중인 사이트는 간헐적 런타임 오류를 표시하지만 IE7과 8에만 표시됩니다.이 오류는 거의 무작위로 나타납니다 (예를 들어, 초기 페이지로드에서 한 번 팝업되거나 N 번째 페이지로드 될 때까지 팝업되지 않을 수 있습니다). 오류는 라인에서 발생했으며 0에서 발생했으며 오류는 "객체 필수"입니다. 사이트 전체에 jQuery를 사용하고 있지만 조각으로 비활성화하는 것은 (예 : 다양한 플러그인 및 What Not) 문제를 해결하지 못했습니다. 나는 여전히 그것에 크랭크하고 있지만이 "도움을 받고 싶다!" 누군가가 이전에 이와 같은 것을 다루었을 경우 Stackoverflow에서 나옵니다.

그것의 간헐성은 실제로 내 엉덩이를 차지하는 것입니다.

도움이 되었습니까?

해결책

귀하의 답변에서, '헤더 섹션'의 ID가있는 요소가 페이지 상단에 있으며 때로는 페이지의 나머지 부분이로드되기 전에 CSS 규칙이 적용되고 있다고 생각합니다. 이는 표현식이 해당 요소가 존재하기 전에 '내용 섹션'의 오프트를 평가하려고한다는 것을 의미합니다.

나는 이것을 다루는 방법에 대한 몇 가지 제안을하지만, 당신은 그들의 유용성을 평가하기 위해 시도해야 할 것입니다.

1/ '헤더 섹션'의 ID를 기반으로 규칙을 작성하는 대신 클래스 헤더 섹션을 기반으로합니다. 이 클래스를 마크 업에 추가하지 말고 jQuery를 통해 문서 로딩이 완료되면 추가하십시오. 요소의 ID를 그대로 두십시오 ...

$(document).ready(function(){
  $("#header-section").addClass("header-section");
});

2/ '내용 섹션'에 대한 규칙을 더욱 허용하지 않도록하십시오. CSS 규칙에서 표현식을 사용해야 할 필요성을 느끼지 못했기 때문에 표현이 얼마나 자주 평가되는지 확실하지 않으므로 작동하지 않을 수 있습니다.

#header-section {margin-top: expression((0 - (this.offsetHeight + (document.getElementById("content-section") ? document.getElementById("content-section").offsetHeight : 0))) + "px");}

당신이 어떻게 진행되는지 알려주세요.

추신 나는 규칙이 무엇을 달성하려고하는지 모른다 - 나는 내가 같은 레이아웃이라고 생각하는 페이지를 조롱했다. 그것을 볼 수없는 것을 방지합니다.

다른 팁

DOM이 완전히 생성되기 전에 스크립트가 객체에 액세스하려고하는 것 같습니다. 기능이 JQuery Ready 기능 내부에 있는지 확인 했습니까?

   $(document).ready(function() {
          // put all your jQuery goodness in here.

   });

나는 그것을 알아. IE 전용 CSS 파일에는 두 가지 표현이 사용됩니다. 예를 들어 다음과 같습니다.

#header-section {margin-top: expression((0 - (this.offsetHeight + document.getElementById("content-section").offsetHeight)) + "px");}

이러한 표현식을 사용하는 두 인스턴스를 모두 설명하면 문제가 해결됩니다. 왜 이런 일이 정확히 발생하는지 잘 모르겠습니다 (그리고이 작업을 수행하는 CSS를 작성하지 않았으므로 CSS 파일을 살펴 보지 못했습니다).

다른 JS가 전혀로드되지 않은 곳에서 사용되는 곳이 2 개 이상 있었기 때문에 다른 JS와 충돌 할 수는 없습니다. 어떤 이유로 ID (컨텐츠 섹션 또는 헤더 섹션)를 찾을 수 없습니까? 확실하지 않습니다 ... 특히 행동이 그렇게 일관되지 않았기 때문에. 흠 ...

솔루션 Belugabob에 감사드립니다

IE 스타일 시트의 CSS에서 표현식에 대한 귀하의 수정 사항이 작업을 수행했습니다.

이런 종류의 코드가 사용되는 이유는 내비게이션/헤더를 이동하는 이유는 SEO 관련입니다. 당신은 당신의 콘텐츠를 상단에 원하고 그 아래의 덜 중요한 내비게이션을 원합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top