2012-01-03 2 views
4

Google의 거대 기업 사이트는 javascript를 사용하여 document.write를 사용하여 모든 페이지에 머리글/바닥 글을 그립니다. 이를 통해 우리 사이트의 "피부"를 한 곳에서 매우 쉽게 유지할 수 있습니다. 이 접근법은 수년 동안 우리에게 도움이되었습니다.자바 스크립트가 포함 된 드로잉 페이지 머리글/바닥 글 포함 및 document.write

그러나 최근에는 IE에서 큰 어려움을 겪고 있습니다. 문제는 헤더 자바 스크립트가 바닥 글 스크립트에 의해 닫힌 태그를 여는 사실에서 유래 한 것 같습니다. 머리글과 바닥 글은 적절한 스킨을 제공하는 일련의 div로 본문을 "감싸는"데 사용됩니다.

동시에, 우리는 페이지의 몸에서 일어나는 멋진 dom 조작을 많이 가지고 있습니다. MSIE, 모질라/4.0 (호환 :

웹 페이지 오류 세부

사용자 에이전트 : IE는 지금이 같은 폐쇄했습니다 전에 우리는 DOM 요소를 수정하려는 사실에 대해 큰 소리로 자주 불평 8.0, 윈도우 NT 5.1; 삼지창/4.0; .NET CLR 2.0.50727) 타임 스탬프 : 2012년 1월 3일 (화) 세계 협정시 22시 20분 28초

Message: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917) 
Line: 0 
Char: 0 
Code: 0 
URI: http://dev.site.com/business_portal_test.jsp 

몇 가지 질문은 :

  • 는 javascrip을 사용하고 있습니다 추가적인 divs 합리적인 접근법에서 핵심 내용을 "포장"하는 것을 포함합니까?
  • 누구든지이 기술을 사용하는 고품질의 트래픽이 많은 사이트를 가리킬 수 있습니까?
  • 이 기술에 이름이 있습니까?
+1

합리적이지만 모든 구조 및 래퍼 div가 서버 측에서 작성되어야합니다. 그러면 j가 완성 된 페이지를 안전하게 스킨 할 수 있습니다. –

+0

마우스 식품 감사. 이 js가 추가 구조/래퍼 div를 생성한다는 것을 반영하도록 질문을 업데이트했습니다. – morgancodes

+1

"이 기술에 이름이 있습니까?" 아마도 "폐기 됨":-) 페이지 끝에있는 스크립트를 실행하여 필요한 추가 머리글/바닥 글에 적절한 페이지 요소를 래핑하여 동일한 효과를 얻을 수 있습니다. – Pointy

답변

1

이 접근법의 주된 문제점은 사이트의 전체 레이아웃이 자바 스크립트에 의존한다는 것입니다. 이는 허용 된 모범 사례에 완전히 위배됩니다. 서버 측면의 포함 또는 마스터 페이지의 개념을 사용하여 쉽게 유지 관리 수준을 달성 할 수 있습니다. 매우 특별한 이유가 없다면 JS는 레이아웃이나 사이트의 스키닝에 실제로 사용되어서는 안됩니다.

관련 문제