Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Любое свойство DOM-узла == его атрибут (https://javascript.ru/forum/css-html-internet-explorer/4944-lyuboe-svojjstvo-dom-uzla-%3D%3D-ego-atribut.html)

B~Vladi 01.09.2009 12:44

Любое свойство DOM-узла == его атрибут
 
Возможно многие это знают уже давно, но вот я заметил это относительно недавно.

Не для кого не секрет, что любому DOM-узлу мозно прикрутить любое пользовательское свойство:
var ele=document.getElementById('id');
ele.userProperty=true;

И это иногда бывает действительно удобно, особенно в обработчиках событий. Но, если браузеры Mozilla, Opera ect. "знают" какие свойства-атрибуты есть у узлов, то IE прикручивает такие вещи непосредственно как аттрибут. Это можно посмотреть в IE8->средства разработчика и в IETester->дебаггер причём для всех версий. Возможно, это как-то связано с особенностью DOM-модели IE...
Сначала меня это сильно смутило - а не возникнут ли какие-либо конфликты с этим, не считая того, что код уже невалиден. И вообще - это нормальный приём - использовать DOM для хранения чего-либо своего.
Вот собственно в этом и вопрос. Ваши мнения?!

B~Vladi 01.09.2009 12:47

Ещё хотел бы добавить:
Пути решения я смогу найти всегда - меня интересует именно этот подход.

Kolyaj 01.09.2009 12:49

Скорее наоборот: атрибуты приравнены к свойствам.

Цитата:

Сообщение от B~Vladi
не считая того, что код уже невалиден

А как то, что присваивается в JavaScript, связано с валидацией?

http://xpoint.ru/know-how/JavaScript/Atributyi?8 зубрить.

Riim 01.09.2009 12:56

Цитата:

Сообщение от B~Vladi
это нормальный приём - использовать DOM для хранения чего-либо своего

Очень часто это сильно облегчает жизнь, главное не напороться на что-то занятое.

B~Vladi 01.09.2009 12:59

Цитата:

Сообщение от Kolyaj
А как то, что присваивается в JavaScript, связано с валидацией?

Получается примерно так:
<div userData=true action="function(){}"></div>

И это не есть валидно.
Цитата:

Сообщение от Riim
Очень часто это сильно облегчает жизнь

Да, я про это упоминал и полностью согласен.
Цитата:

Сообщение от Riim
главное не напороться на что-то занятое.

Вот я и пытаюсь выяснить - на что же можно напороться?!

B~Vladi 01.09.2009 13:03

Цитата:

Сообщение от Kolyaj
http://xpoint.ru/know-how/JavaScript/Atributyi?8 зубрить.

Цитата:

Internet Explorer 7.0, который должен скоро выйти, вряд ли улучшит ситуацию, серьезных улучшений движка до версии 8.0 точно не будет (да и там это еще очень сомнительно)
Как видно - ничего не поменялось:(

Kolyaj 01.09.2009 13:09

Цитата:

Сообщение от B~Vladi
Получается примерно так:

Где получается? HTML-код страницы не меняется. А то что выдает innerHTML в любом случае валидацию не пройдет, тем более иешный.

B~Vladi 01.09.2009 13:24

Цитата:

Сообщение от Kolyaj
Где получается?

Цитата:

Сообщение от B~Vladi
Это можно посмотреть в IE8->средства разработчика и в IETester->дебаггер причём для всех версий.

Цитата:

Сообщение от Kolyaj
HTML-код страницы не меняется.

Дк в том-то и дело, что меняется!!!

B~Vladi 01.09.2009 13:25

Цитата:

Сообщение от Kolyaj
А то что выдает innerHTML в любом случае валидацию не пройдет, тем более иешный.

Не факт.

Kolyaj 01.09.2009 13:29

Цитата:

Сообщение от B~Vladi
Дк в том-то и дело, что меняется!!!

Меняется innerHTML.

Цитата:

Сообщение от B~Vladi
Не факт.

Интересное заявление. И на чем оно основано?


Часовой пояс GMT +3, время: 12:56.