Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Добавление метода
ТвойWeb » WebMaster класс » JavaScript » Добавление метода

Страниц (1): [1]
 

1. kr12 - 11 Декабря, 2005 - 02:52:11 - перейти к сообщению
Таким обьектам как Array, String, Object и тп. можно добавить метод так:
объект.prototype.имя метода=function(){
...
}
А можно ли добавить метод обьекту document, чтоб например можно было написать так:
form1.validate;
2. Леголегс - 11 Декабря, 2005 - 04:09:30 - перейти к сообщению
А при чём тут document?
CODE:
document.form1.validate = function () {
//...
}
Ну ещё можно попробовать HTMLFormElement.prototype.
3. Дмитрий Б. - 12 Декабря, 2005 - 00:49:20 - перейти к сообщению
Ага. Или Node.prototype (не уверен, что что-то получтся...)
4. kr12 - 14 Декабря, 2005 - 14:21:02 - перейти к сообщению
Это для одно элемента. А как сделать для всех элементов сразу (не перебирать же их). Допустим надо сделать функцию close(){this.innerHTML=''} методом любого элемента ( a, span, td и тп. :)
5. ETC - 14 Декабря, 2005 - 16:12:22 - перейти к сообщению
CODE:
Object.prototype.clearInnerHTML = function() { this.innerHTML = ''; }


close() использовать не стоит, перекрывать стандартные методы...
6. Леголегс - 14 Декабря, 2005 - 16:40:03 - перейти к сообщению
ETC
Я тоже хотел так написать. Но проверил в ИЕ. Не работает Недовольство, огорчение
kr12 пишет:
А как сделать для всех элементов сразу (не перебирать же их).
А почему бы и не перебрать?
CODE:
var tempfunc = function(ths){ths.innerHTML="";};
var tags = ["a","span","td"];
for(var t=0;t<tags.length;t++)
{
var objs=document.getElementsByTagName(tags[t]);
for(var o=0;o<objs.length;o++)
objs[o].clearInnerHTML = tempfunc;
}
7. Дмитрий Б. - 15 Декабря, 2005 - 02:17:50 - перейти к сообщению
Всё потому, что HTML-тег не является экземпляром объекта Object... (instanceof возвращает false).
8. kr12 - 15 Декабря, 2005 - 02:36:16 - перейти к сообщению
Не перебрать потому, что по ходу могут создаваться новые элементы. Или можно назначить функцию перебора какому-нибудь событию. Хотя, это наверное уже перебор..
9. Леголегс - 15 Декабря, 2005 - 10:29:16 - перейти к сообщению
kr12
Придётся перебирать сразу после создания. HTML-тег имеет совершенно разную "родословную" в разных браузерах, так что прототипы тебе вряд-ли помогут.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0284]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33