sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | http://1 |
extra_vars4 | ko |
extra_vars5 | http://arstechnica.com/civis/viewtopic.php?f=20&t=185317 |
extra_vars6 | sitelink1 |
Question
Object.prototype.removeNodes = function() { var node = this; while (this.lastChild) node.removeChild(this.lastChild); }The purpose of this prototype is to remove all children from an element. It works fine in Gecko, WebKit/KHTML, and Opera. But not IE.
IE does not support prototype extensions of HTML elements.
So you have to fake it instead with something like...
http://www.geekdaily.net/2007/06/18/javascript-htmlelement-in-ie/
or
http://delete.me.uk/2004/09/ieproto.html
or maybe
http://www.browserland.org/scripts/htmlelement/
결론은
Element = function () {};
Element.prototype.getAttribute = function (attribute) {
if (attribute == "class") attribute = "className";
if (attribute == "for") attribute = "htmlFor";
return this[attribute];
}
Element.prototype.setAttribute = function (attribute, value) {
if (attribute == "class") attribute = "className";
if (attribute == "for") attribute = "htmlFor";
this[attribute] = value;
}
------------------------------------------------------------------------------------
createElement 재정의 방법1
var __IEcreateElement = document.createElement;
document.createElement = function (tagName) {
var element = __IEcreateElement(tagName);
var interface = new Element;
for (method in interface)
element[method] = interface[method];
return element;
}
------------------------------------------------------------------------------------
createElement 재정의 방법2
document.createElement = (function(fn){
return function(tagName){
var elem = fn.call(document, tagName);
elem.$ = function(){
alert(arguments[0])
}
return elem;
};
})(document.createElement);
------------------------------------------------------------------------------------
createElement 재정의 방법3 (추천)
document._createElement = document.createElement;
document.createElement = function(tag)
{
var el=document._createElement(tag);
el.methodYouWantToAdd = function(args) {
//do stuff with "this"
return this;
}
return el;
}
------------------------------------------------------------------------------------
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
70 | char to hex string | 황제낙엽 | 2011.11.29 | 206 |
69 | Understanding delete | 황제낙엽 | 2011.11.28 | 61 |
68 | JavaScript Reserved Words | 황제낙엽 | 2011.11.28 | 94 |
67 | url encode & decode | 황제낙엽 | 2011.10.30 | 469 |
66 | 페이지 스크롤 끝 확인 | 황제낙엽 | 2011.10.24 | 6230 |
65 | String 에 trim() 함수 적용하기 | 황제낙엽 | 2011.08.28 | 48 |
64 | javascript array contains method | 황제낙엽 | 2011.08.19 | 210 |
63 | object clone | 황제낙엽 | 2011.07.08 | 41 |
62 | iframe auto resize (cross browsing) | 황제낙엽 | 2011.05.13 | 658 |
» | Why does this simple Javascript prototype not work in IE? | 황제낙엽 | 2011.03.24 | 242 |
60 | User Agent 관련 Reference URL | 황제낙엽 | 2011.02.22 | 41 |
59 | 각 브라우저 별 User Agent 정보 | 황제낙엽 | 2011.02.22 | 823 |
58 | History of User Agent | 황제낙엽 | 2011.02.22 | 38 |
57 | Navigator 객체란? | 황제낙엽 | 2011.02.22 | 53 |
56 | Understanding User-Agent Strings | 황제낙엽 | 2011.02.22 | 76 |
55 | User Agent 정보 모음 | 황제낙엽 | 2011.02.22 | 7768 |
54 | ActiveX 설치 여부를 검사하는 스크립트 | 황제낙엽 | 2011.02.13 | 4053 |
53 | 자바스크립트 예약어 | 황제낙엽 | 2010.11.03 | 35 |
52 | 크로스 브라우저를 위한 브라우저 검사 코드 | 황제낙엽 | 2010.08.27 | 86 |
51 | javascirpt IME-Mode 설정하기 | 황제낙엽 | 2010.08.17 | 1112 |