tabcontainer는 브라우저마다 다르게 작동합니다
-
06-07-2019 - |
문제
다음 코드는 IE8, Safari 4.0.2에서 작동하지만 Firefox 3.5.5에서 빈 페이지를 생성합니다. 아이디어가 있습니까?
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/tundra/tundra.css">
</head>
<body class="tundra">
<div style="width: 350px; height: 300px">
<div id="tc1-prog">
</div>
</div>
</body>
<script type="text/javascript" src="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojo/dojo.js"
djConfig="parseOnLoad: true">;
</script>
<script type="text/javascript">
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
dojo.addOnLoad(function() {
var tc = new dijit.layout.TabContainer({
style: "height: 100%; width:100%;"
},
"tc1-prog");
var cp1 = new dijit.layout.ContentPane({
title: "Food",
content: "We offer amazing food"
});
tc.addChild(cp1);
var cp2 = new dijit.layout.ContentPane({
title: "Drinks",
content: "We are known for our drinks."
});
tc.addChild(cp2);
tc.startup();
});
</script>
</html>
해결책
아마도 도메인 교차 문제 일 것입니다. 야간 빌드는 테스트를 위해 게시되었지만 실제로 로컬로 사용하려면 Tarball을 다운로드해야합니다. 그렇지 않으면 브라우저의 도메인 보안 모델을 깨는 XHR+Eval을 사용하여 개별 모듈을로드하도록 참조됩니다.
다른 선택은 Dojo의 "Cross Domain"빌드를 사용하는 것입니다. Dojo는 당신이하고 싶었던 것과 배포하기가 매우 간단합니다. 스크립트 태그와 함께 가리키십시오. 그것이 Google CDN에서 사용할 수있는 것입니다.
다른 팁
스크립트 태그를 바디 태그 안에 넣을 수 있습니다. 유효한 HTML이 되려면 몸체 또는 헤드 태그에 있어야합니다. 잘못된 문서는 확실히 브라우저간에 일관되게 작동하지 않을 수 있습니다.
업데이트: 또한 야간 빌드 대신 프로덕션 빌드를 사용해 볼 수도 있습니다. 사용하도록 URL을 변경했습니다 http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js 그리고 그것은 FF에서 나를 위해 잘 작동했습니다. 야간 빌드로 깨졌습니다.
로부터 HTML 4.01 사양:
HTML 4 문서는 세 부분으로 구성됩니다.
HTML 버전 정보가 포함 된 라인,
선언적 헤더 섹션 (헤드 요소에 의해 구분),
문서의 실제 내용이 포함 된 본문. 본체는 신체 요소 또는 프레임 세트 요소에 의해 구현 될 수 있습니다.
<html>
<head>
<link ... />
</head>
<body>
...
<script ... >
</script>
</body>
</html>