Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Почему это работает? (https://javascript.ru/forum/events/28287-pochemu-ehto-rabotaet.html)

dystar 14.05.2012 01:20

Почему это работает?
 
<div id="cont"></div>
<button onClick="cont.innerHTML='Text'">OK</button>

cyber 14.05.2012 01:23

хм .... +1 к вопросу=)

melky 14.05.2012 01:42

потому что ie создает ссылки в глобальной области видимости на элементы с айдишниками. эти свойства, кстати, рид онли. и для элементов с атрибутом Name та же лабуда.

не нашел описания в документации... максимум, этот тред на стак оверфлоу

dystar 14.05.2012 01:55

Спасибо за информацию. Видимо, не только IE, работает везде, как я понял.
Действительно, нигде этого в руководствах не встречал.

Le-mark43 18.05.2012 12:54

Едрит-мадрид, этож как сильно можно код сократить, Чувак, да ты тестер...

bes 18.05.2012 15:10

Цитата:

Сообщение от Le-mark43
Едрит-мадрид, этож как сильно можно код сократить, Чувак, да ты тестер...

Тоже нравится эта возможность, но не совсем кроссбраузерно, например, для FF лучше не использовать.

dmitriymar 18.05.2012 16:27

Цитата:

Сообщение от Le-mark43
Едрит-мадрид, этож как сильно можно код сократить, Чувак, да ты тестер...

и задуматься почему,если это так круто,событийная модель 2 раза после этого поменялась уже...
Цитата:

Сообщение от bes
Тоже нравится эта возможность, но не совсем кроссбраузерно, например, для FF лучше не использовать.

а это почему? в пределах практически всех своих возможностей она кросбраузерна

bes 18.05.2012 16:38

Цитата:

Сообщение от dmitriymar
и задуматься почему,если это так круто,событийная модель 2 раза после этого поменялась уже...

Раз поменялась, ничего не поделаешь, а круто, потому что коротко (хотя понятно, что можно вообще обойтись без id).

Цитата:

Сообщение от dmitriymar
а это почему? в пределах практически всех своих возможностей она кросбраузерна

Насколько я знаю, в FF она работает только в режиме совместимости.

dmitriymar 18.05.2012 16:50

Цитата:

Сообщение от bes
Насколько я знаю, в FF она работает только в режиме совместимости.

ставишь ФФ .и не меняя настроек в нём, всё норм работает
http://vvz.nw.ru/Lessons/JavaScript/identif_el.htm
модель родная для браузеров-наверное все через неё проходили,а браузеры обратно совместимые

bes 18.05.2012 19:42

Из http://ru.wikipedia.org/wiki/Quirks_mode
Цитата:

Если тип документа не объявлен или объявлен некорректно, браузер всегда работает в режиме совместимости
Если это утверждение верно, то при указанном типе документа возникнут проблемы (сейчас FF не пользуюсь, поэтому не проверял).

melky 18.05.2012 19:44

Цитата:

Сообщение от bes
Если тип документа не объявлен или объявлен некорректно, браузер всегда работает в режиме совместимости

как его можно уже не ставить\ставить неправильно, если он такой простой?
<!DOCTYPE HTML>

melky 18.05.2012 20:05

Цитата:

Сообщение от nasqad
melky, не поверите, html прописными буквами (да никакой разницы)

поверю, я так раньше писал. но большими буквами выглядит потрясно.

был бы html5 регистрозависимый - писал бы маленькими :)

bes 18.05.2012 20:27

Для примеров наверное можно и id использовать.

Цитата:

Сообщение от nasqad
Какое коротко когда элемент ищется один раз на 100 строк кода, 5 переменных в начале обьявил и неделю можно не вспоминать

Можно пояснить, что за стиль программирования сейчас процветает (как наиболее эффективно идентифицировать элементы, уже советовали, что по CSS классам).

dmitriymar 20.05.2012 10:44

Цитата:

Сообщение от bes
Если это утверждение верно, то при указанном типе документа возникнут проблемы (сейчас FF не пользуюсь, поэтому не проверял).

оно верно. но каким оно боком?
http://ru.wikipedia.org/wiki/Mozilla_Firefox

bes 20.05.2012 22:32

Цитата:

Сообщение от dmitriymar
оно верно. но каким оно боком?

<!doctype html>

<button id="myBut">click</button>

<script>
myBut.onclick = function () {
  alert(myBut.innerHTML)
}
</script>

Начиная с какой версии FF у вас это работает?

dmitriymar 21.05.2012 08:28

Цитата:

Сообщение от bes
Начиная с какой версии FF у вас это работает?

начали с dom0-
Цитата:

Сообщение от dystar
<button onClick="cont.innerHTML='Text'">OK</button>

перепрыгнули на dom1
Цитата:

Сообщение от bes
myBut.onclick = function () {
alert(myBut.innerHTML)

Вы уж для начала определитесь какая модель обработки событий у вас не работает в режиме совместимости.
Приплели неправильный доктайп
Цитата:

Сообщение от bes
<!doctype html>

для старых версий браузеров,браузеры этот доктайп не знают
bes, вы для начала уж сами определитесь что именно вы утверждаете

bes 21.05.2012 13:46

dmitriymar, речь шла лишь о том, что если FF не работает в режиме совместимости (например, если у документа явно задан тип документа модели html, например, 4 или 5), то FF не воспримет прямое обращение к элементу по значению атрибута id (воспримет только в конструкции document.getElementById('')).


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