|
|
|
| Здравствуйте.
Возникла следующая ситуация: мне необходимо пройтись по аттрибутам объекта и что-то с ними сделать, но только в том случае, если аттрибут является свойством (width, height etc), а не событием (onclick, onmouse etc)
for (var attrIndex = 0; attrIndex < control.attributes.length; attrIndex++)
{
if (IsEvent(control.attributes[attrIndex])) continue;
MadeThisWorldHappy();
}
Никак не соображу, как мне понять, что аттрибут является событием. Проверять наличие в начале букв on я смогу, но нет ли более надежного и легального способа? Хотя бы для IE ?
Заранее спасибо,
Денис | |
|
|
|
|
|
|
|
для: Denis_Gorby
(03.03.2006 в 00:01)
| | Если они объявлены, то представляют собой функции ( typeof(...)=='object'&&(...).toString().indexOf('function')==0 ), если нет, то null / undefined (в зав. от бр.) , и ничего больше. | |
|
|
|
|
|
|
|
для: 12345
(03.03.2006 в 01:33)
| | ( typeof(...)=='object'&&(...).toString().indexOf('function')==0 )
Извините, а что подразумевается под (...)?
Если control.onclick, например, то я и так знаю, что это является событием. Если control.attributes[attributeIndex], то у него нет метода toString().
Спасибо. | |
|
|
|
|
|
|
|
для: Denis_Gorby
(03.03.2006 в 09:53)
| | (...) - это то, о чём мы говорим, о ссылке на атрибут объекта, который может быть обработчиком события.
Если нет такого метода, то это не функция, таким образом, узнаём, какие из атрибутов - функции. Но определить, обработчик ли это события, не можем, потому что любому атрибуту можем присвоить функцию. Т.е, точнее, условие поиска функций будет
( typeof(...)=='object'&&(...).toString()&&(...).toString().indexOf('function')==0 ) | |
|
|
|