Атрибуты обработчиков событий

 
0
 
JavaScript
ava
Aliance | 20.07.2007, 14:45
Хотелось бы подискутировать на следующие темы:

• Пишете ли Вы атрибуты обработчиков событий в нижнем регистре (onclick) или же вы извращенец (onClick)
• Вставляете ли Вы в атрибуты обработчиков событий не нужное слово псевдопротокола javascript: (onclick="javascript: alert('test')") или же не используете лишнего (onclick="alert('test')").

Хочу слышать Ваши мнения и доводы потому, как Вы поступаете и почему.
Comments (14)
ava
griker | 20.07.2007, 16:55 #
  • Всегда пишу OnClick, так как на мой взгял это выглядит покрасивее, учитывая то что on и Click это два слова, мне хочется хоть как-то их разделить... Просто мне так приятней будет смотреть на код с подобными вещами
  • Никогда не вставляю ничего ненужного... Люблю керректность smile
ava
Mymik | 20.07.2007, 17:02 #
Цитата (Aliance @ 20.7.2007, 13:45 findReferencedText)
Пишете ли Вы атрибуты обработчиков событий в нижнем регистре (onclick) или же вы извращенец (onClick)

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

Цитата (Aliance @ 20.7.2007, 13:45 findReferencedText)
Вставляете ли Вы в атрибуты обработчиков событий не нужное слово псевдопротокола javascript: (onclick="javascript: alert('test')") или же не используете лишнего (onclick="alert('test')").

Нет не использую, потому как этот псевдокласс необходим только для href распознания, что дальше идет javascript. Тем более лишнии символы как обычно лень писать. :о)
ava
Aliance | 20.07.2007, 18:27 #
Mymik, во всем +1. При чем не понимаю абсолютно людей, поступающих по-другому.
ava
Burrr | 20.07.2007, 18:35 #
I) onclick пишу в нижнем регистре в силу того, что все атрибуты в HTML-коде привык писать так и не вижу смысла переучиваться
II) javascript: указывается в хрефе, в атрибутах, соот-их событий этого делать просто не нужно.

Если рассмотреть конкретный случай и выбрать из 2-х вариантов:
1) <a href="javascript:test()">Link text</a>
2) <a href="url.html" onclick="test(); return false;">Link text</a>

, то я выберу вариант - 2, т.к. можно сделать интерфейс для юзеров с отключенным JavaScript.

А в идеале <a href="url.html" onclick="return test();">Link text</a>, чтоб функция возвращала ноль...
ava
Aliance | 20.07.2007, 18:39 #
Burrr, тоже +1.
ava
vasac | 20.07.2007, 20:20 #
Цитата (griker @ 20.7.2007, 16:55 findReferencedText)
Всегда пишу OnClick, так как на мой взгял это выглядит покрасивее,

Цитата (griker @ 20.7.2007, 16:55 findReferencedText)
Люблю керректност

Почитайте насчет корректности регистра атрибутов.
ava
griker | 20.07.2007, 22:28 #
vasac, спасибо... Я просто говорил немного про другое... Разве OnClick таким образом писать некорректно?
ava
BuShaRt | 20.07.2007, 22:31 #
Я в JS не силен, но попробуйте доказать свою точку зрения по поводу onClick в ветке верстальшиков, они, фанаты XHTML вас на части порвут за нарушение стандартов... я с ними от части соглашусь, переменные и функцции следует писать именно так, потому, что читабельней... Я давно ушел от того, что пишу код лишь бы побыстрее, у меня проекты пишуться по несколько дней и недель, мне не скорость нужна, а постоянный котроль всего кода без лишних усилий, тогда моя работа только будет приносить успех

added later:
Корректно пишеться не OnClick и, не onclick, а onClick smile
ava
Zeroglif | 21.07.2007, 00:18 #
1) Регистр HTML-y по-барабану, пиши хоть OnClIcK, но:

- есть регистрозависимый XHTML, с которым нужно считаться;
- есть регистрозависимый ECMAScript/J(ava)Script, на котором нужно набивать руку;
- есть ньюбы, которые переносят "onClick" в скрипты и начинают бегать по кругу, их стоит пожалеть;
- есть (не сомневаюсь) где-то во вселенной движки, которые гипотетически могут сбойнуть на "рЕгИсТре", не стоит их дразнить;
- есть W3C аttribute definitions, может кто это и прочитает;

2) Протокол javascript в предложенном примере - вещь совершенно бессмысленная и вредная.

ava
Mymik | 21.07.2007, 10:11 #
пару дней назад в другой ветке форума увидел пост одного человека и тот спрашивал, как писать обработчики событий в html. Я немного ответил ему, но он еще и спросил, мол а если ему вдруг по пьяни придет в голову писать на VB. Ну а я в VB вообще дуб-дубом, но пошел искать в интернете и там вот я ничего путного не нашел :о( точнее вообще не нашел книжек по VB для браузеров.
Ну да, я понимаю что такой отличный браузер как FireFox не работает с таким АЦтоем как Vb, ну а если вернуться к IE, то как вообще происходит парсинг клиентского языка ??? Ведь там тоже должен быть какой-то vbscript псевдокласс. Может быть именно из-за этого пошли эти ненужные символы "javascript:" в обработчиках событий ???
ava
Zeroglif | 21.07.2007, 15:42 #
Цитата (Mymik @ 21.7.2007, 10:11 findReferencedText)
отличный браузер как FireFox не работает с таким АЦтоем как Vb

не такой уж и отличный браузер... не такой уж и АЦтой... smile3

Цитата (Mymik @ 21.7.2007, 10:11 findReferencedText)
Может быть именно из-за этого пошли эти ненужные символы "javascript:" в обработчиках событий

Отчасти и из-за этого. IE включает тот скриптовый язык по дефолту, который ему попался в первом же скриптовом блоке, если на странице скриптовый коктейль, и первым стоит vbscript, то все javascript-овые обработчики в тегах отваливаются:


<html>
<head>
<script type="text/vbscript"></script>
</head>
<body>
<a href="#" onclick="alert('test');">onclick=alert();</a><br>
<a href="#" onclick="javascript:alert('test');">javascript:onclick=alert()</a>
</body>
</html>


Одним из вариантов устранения этой проблемы в IE стала возможность прописывать в таких обработчиках т.н. индикатор протокола javascript (сами так назвали), тогда движок изолирует код от дефолтного скриптового языка, и работает jscript.dll. Это решение в годы некоторой гегемонии JScript растиражировали копипастеры, и понеслось. Тем более, что при отсутствии vbscript ничего страшного не происходит, только масло масляное... Браузеры, в которых таких проблем нет, теоретически должны трактовать javascript: в обработчике как label (ECMAScript 12.12), конструкция в этом контексте совершенно бессмысленная, но при этом не вызывающая ошибку:


<a href="#" onclick="javascript:while(1){alert(break javascript;};alert('out-of-loop');">test label</a>

ava
Aliance | 26.07.2007, 09:22 #
Цитата (BuShaRt @ 20.7.2007, 23:31 findReferencedText)
Корректно пишеться не OnClick и, не onclick, а onClick smile

Кто сказал?
ava
Zeroglif | 26.07.2007, 12:46 #
Цитата (Aliance @ 26.7.2007, 09:22 findReferencedText)
Кто сказал?

Видимо подразумевается "корректно" с точки зрения официальных доков JavaScript, где с самого начала и очень-очень долго предлагалось использовать interCap (onClick, onMouseOver и т.д.)
ava
SamDark | 26.07.2007, 17:37 #
При использовании обычной разметки HTML пофигу как писать, однако XHTML требует нижнего регистра. Так что для XHTML правильно onclick, а не onClick или ONCLICK.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit