'document.all 을 쓰지 맙시다!'에 해당되는 글 1건

  1. 2009.08.26 document.all 을 쓰지 맙시다!
반응형
출처 : http://www.spoork.net/153

document.all 을 쓰지 맙시다!
document.all 을 안쓰는 것 많으로도 표준을 따르는 웹 페이지 디자인에 매우 큰 걸음을 내 딛는 것입니다.
단지 저 document.all 때문에 다른 안되는 홈페이지가 부지기수 입니다.
요즘에는 FireFox가 어쩔수 없이 지원해서 되긴합니다만, 그렇다고 그게 좋다는 것을 의미하지는 않습니다. FireFox 1.0 은 document.all 을 지원하긴 하지만 if 문으로 체크하면 지원하지 않는다고 표시합니다.
다음은 한국모질라 포럼에 올라온 글입니다.

<< 내용숨기기 >>



http://forums.mozilla.or.kr/viewtopic.php?t=580&highlight=document.all

웹사이트에서 버튼이 동작 되지 않는 경우 대부분 Javascript의 객체를 MSDOM에서 사용하는 document.all을 사용하기 때문에 그렇습니다. 자바스크립트 디버거를 통해 소스를 보았을 때 document.all 이 들어 있는 경우 document.all 대신 W3C DOM의 오브젝트 판별법을 사용하도록 웹사이트 관리자에게 알려주셔야 합니다.

document.all[objectID] -> document.getElementById("objectID")

혹시 거기에서 MS IE4 때문에 getElementById를 쓸 수 없다고 하면 getObject()를 아래처럼 정의한 후에 쓸 수 있다고 알려 주십시오.

function getObject(objectId) {
// checkW3C DOM, then MSIE 4, then NN 4.
//
if(document.getElementById && document.getElementById(objectId)) {
return document.getElementById(objectId);
}
else if (document.all && document.all(objectId)) {
return document.all(objectId);
}
else if (document.layers && document.layers[objectId]) {
return document.layers[objectId];
} else {
return false;
}
}

즉, 다음처럼 하면 됩니다.

getObject('sendbn').style.visibility="hidden";

getObject는 http://www.orient-express.com/js/layers.inc 에 있습니다.

혹은 다음에 있는 'x library'를 쓰는 것도 좋은 방법입니다. http://www.cross-browser.com
Posted by 1010