LINUX.ORG.RU

Нестандартные атрибуты HTML


0

1

Привет, Лорчан.
Недавно писал для текущего проекта яваскрипт, наткнулся на то, что удобнее было бы добавить к некоторым тегам атрибут id родителя. Родителя объекта, конечно, не тег-родитель. Что-то наподобие

<div id="item1" pid="7">...
Старший посмотрел хмуро и сказал «нестандартные атрибуты не нужны». Но тот же гуглоплюс, например, их использует. Здесь, конечно, можно сказать, мол, зачем гуглоплюсу проходить валидацию и прочее. Но в чём смысл соблюдать стандарт, если можно сделать обработку удобнее? HTML это же XML, почему нельзя использовать свои атрибуты? При условии, что они не пересекаются с существующими, конечно.



Последнее исправление: jessey (всего исправлений: 1)

Некоторые вещи без них крайне трудно сделать.
Хотя я имею ввиду такие вещи, когда эти атрибуты назначаются из скрипта: var.attr = ... - в DOM они появляются как атрибуты тегов.

moscwich
()
Ответ на: комментарий от vvnab

Вопрос был - «почему»?

HTML это же XML, почему нельзя использовать свои атрибуты?
HTML это же XML

HTML это не XML (хоть и произошёл от SGML, но не является подмножеством как XML) и подразумевает работу по стандарту с определёнными аттрибутами, и то что браузер «проглатывает» косяки разметки, а xhtml даже подразумевает бардак в тегах и по умолчанию парсер не исправляет ошибки разработчиков, не говорит о том что инструмент можно использовать не по назначению.

Ну а по вопросу «почему?» - потому что гладиолус.

shrub ★★★★★
()
Ответ на: комментарий от shrub

Ладно, хорошо, стандарт, понимаю.
Тогда почему тот же гуглоплюс не боится использовать эту «кривую разметку»? Не все же на хроме сидят.

jessey
() автор топика
Ответ на: комментарий от Kalashnikov

О, спасибо, так и сделаю. Но гугл пользует атрибут 'oid', это, вроде, не входит в спецификацию?

jessey
() автор топика
Ответ на: комментарий от jessey

почему тот же гуглоплюс не боится использовать эту «кривую разметку»?

несколько лет как обратил внимание что гугл «подзабивает» на стандарты, даже раньше шутка ходила, что главная гугла не проходит валидатор :) наверно им просто пофигу - работает и ладно

shrub ★★★★★
()
Ответ на: комментарий от Kalashnikov

кстати да, в html5 специально сделали «data-» для этого

shrub ★★★★★
()

Обычно родительские id прячутся за движком в базе, что проходит валидацию без подобных проблем и подобных решений. Все что проходит в браузер пользователя должно быть типизировано, а эти теги ему не нужны. Если теги нужны только тебе, то прячь их от глаз бравзера

minakov ★★★★★
()

Взять и назвать «item1_pid3», в яваскриптике писать split(«_pid»), при переборе элементов пользоваться getElementByClass или getElementByTag.

amomymous ★★★
()

Нестандартные атрибуты ужасны тем, что у созданных с их использованием страниц нет будущего. А вдруг в скором времени введут атрибут с таким же именем, но с совершенно другим назначением? Тогда все сверстанные с таким приемом страницы будут отображаться и работать некорректно.

amomymous ★★★
()
Ответ на: комментарий от amomymous

в яваскриптике писать split(«_pid»)

Да, да, и получать конструкции вида:

parseInt(el.id.split('checkbox-')[1])
Спасибо, пусть лучше разметка будет кривой. В любом случае, я уже получил ответ. Дальше можно просто порассуждать о приемлемости такого решения как нестандартные атрибуты.

jessey
() автор топика
Ответ на: комментарий от minakov

Да бросьте, -data аттрибуты специально для этого и придумали, это часть спецификации де юро и де факто (.data() jQuery вроде через них и работает), в будущем с ними уже ничего не изменится.

Kalashnikov ★★★
()
Ответ на: комментарий от jessey

а по существу - делать привязку к родителю, показывая ее ПА - на мой взгляд неверно. Нужно такие вещи прятать от пользователя

minakov ★★★★★
()

XHTML/HTML/HTML5 сделаны для людей, а не для роботов. Well formed да и хватит. Юзай data-*.

ATOM, RSS и прочие XML based стандарты/спецификации уже нужно дотягивать до состояния well formed и valid. Потому как с ними дело буду иметь именно роботы и программы.

resurtm ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.