[JS, IE] Как навесить метод на html-объект?
если я правильно тебя понял, в jQuery это как-то делается, стоит там посмотреть.
руками проходить по всем элементам и навешивать на каждый из них этот метод; а потом городить костыли, чтобы он появлялся у свежесозданных объектовработают - совсем не хочется.
но вообще, ты же про другое спрашиваешь, хотя тебе тоже можно ввести систему событий, которые ты будешь дергать по необходимости.
может, это даже улучшит код в конкретном случае.
если так, то погугли nwevents. сам не юзал, но по, описанию, довольно легкая и чисто сделанная штука
http://www.codingforums.com/showthread.php?t=70378
В FF такое работает на ура:
<html>
<head>
<title>Test DOM</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
var el;
if (typeof(HTMLElement) != 'undefined' && typeof(HTMLElement.prototype) != 'undefined')
{
HTMLElement.prototype.doSmth = function { alert("Here"); };
el = document.createElement("p");
el.onclick = function { this.doSmth; };
el.appendChild(document.createTextNode(text;
document.body.appendChild(el);
}
// -->
</script>
</body>
</html>
Оставить комментарий
kruzer25
Если тупо создать новый метод через Object.prototype - он не появится у html-ных объектов (у тех, которые в document.all хотя нормально работает у всех остальных объектов. typeof(document.all[0]) - object, так что непонятно, в чём может быть дело. В гугле ничего по теме найти не смог.Как добавить метод doSomething ко всем объектам так, чтобы работало, к примеру, document.all[0].doSomething ? Конечно, без того, чтобы руками проходить по всем элементам и навешивать на каждый из них этот метод; а потом городить костыли, чтобы он появлялся у свежесозданных объектов (тогда уж легче глобальную функцию сделать).