2010-06-11 2 views
2
내가 마우스 오버 스크립트가 작동하도록하기 위해 노력하고

, 스크립트 설정에 doctype 내가 테스트 모든 브라우저에서 잘이 작품 없습니다는 웹킷과 오페라 브라우저에서 실패 할 내 자바 스크립트의 원인이

내가 전환 (이것은이 문서 타입이어야한다) 는 파이어 폭스와 IE8 (&의 compat 모드) 잘 작동하지만 오페라와 웹킷 브라우저를 표시 할 수만에 문서 타입을 설정하면되지만 사이트는

그러나, 개 식사처럼 보인다 페이지 접기 위의 팝업은 페이지 아래로 스크롤하여 이미지 위로 이동하면 보이는 페이지 위에 팝업이 나타납니다.

나는 왜 코드에서 document.all 인스턴스가 몇 개 있는지를 알 수는 없지만이를 대체하려는 시도는 Firefox에서 작동한다는 사실 외에도 코드가 손상되어 Opera에서 document.all이 문제가 아니라고 생각하십시오.

어떤 도움을 주시면, 왜 doctype이 Javascript에 왜 도움이 될지 알려주는 데 도움이 될 것입니다.

Here is the site without a doctype

Here is the site with a doctype

+0

을위한 두 번째 링크 morgenmuffel에게 –

+0

건배를 즐길 댄 – morgenmuffel

답변

1

서로 다른 DOCTYPE은 자바 스크립트에 영향을 미치지 않습니다. 대신 html/css 렌더링에 영향을줍니다.

있지만, 당신은 some differences 그것은 그 자바 스크립트

DOCTYPE 선언에 영향을 초래할 수 있습니다 고려할 수 있습니다하면 페이지를 구문 분석 할 방법 브라우저를 알려줍니다. DOCTYPE이 없으면 브라우저는 다른 가정을하고 따라서 다른 렌더링을 생성 할 수 있습니다.

실제로 DOCTYPE이없는 경우 크롬은 다른 페이지에서 지정한대로 문서 유형이 HTML 4.01 전환이며 XHTML 1.0 전환이 아니라고 가정합니다. 이것은 일반적으로 다른 렌더링으로 이어질 것입니다.


자바 스크립트를 살펴보면 어떤 브라우저인지와 어떻게 렌더링해야하는지 확인하는 검사가 있습니다. 최선의 방법은 브라우저 간 지원을 올바르게 처리하는 성숙한 자바 스크립트 라이브러리를 사용하는 것입니다. 사용하기에 알맞은 프레임 워크의 예로서 JQuery을 제공 할 것입니다. 그것은 당신이 구현하려고하는 기능과 더 많은 것을 지원하기위한 플러그인을 가지고 있습니다.

+0

가 좋아, 내가 이해하는 척하지 않을 것이다 자바 스크립트 있지만, 기본적으로 문제의 핵심은 내가 사용하는 해킹을 추가했다 의 문서 타입이 적용되었을 때 밝혀졌다 Webkit에 대한 오페라 및 document.body의 document.documentElement 더 자세히 살펴보면 doctype없이 실제로 작동하는 방식을 더 잘 이해할 수 없습니다. – morgenmuffel

관련 문제