Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

HTML (или, может быть, просто XHTML?) относительно 9X_javascript строг, когда дело касается нестандартных 9X_javascript-execution атрибутов тегов. Если они не входят в спецификацию, ваш 9X_standard код считается несовместимым.

Однако нестандартные 9X_js атрибуты могут быть весьма полезны для передачи 9X_html-tag метаданных в Javascript. Например, если 9X_div ссылка предполагает отображение всплывающего 9X_webpage окна, вы можете установить имя всплывающего 9X_standard окна в атрибуте:

click me 

Кроме того, вы можете сохранить 9X_vanilla-javascript заголовок всплывающего окна в скрытом элементе, например 9X_ecmascript в диапазоне:

.popup .title { display: none; }  click me Title for My Popup  

Однако я не понимаю, какой метод 9X_vanilla-javascript предпочтительнее. Первый метод более краток 9X_html-tag и, как я полагаю, не так сильно портит поисковые 9X_javascript-library системы и программы чтения с экрана. И наоборот, второй 9X_html вариант упрощает хранение больших объемов 9X_div данных и, следовательно, более универсален. Он 9X_ecmascript также соответствует стандартам.

Мне любопытно, что 9X_vanilla-javascript думают эти сообщества. Как вы справляетесь 9X_html-tag с такой ситуацией? Перевешивает ли простота 9X_div первого метода возможные недостатки (если 9X_standards они есть)?

95
2

  • Они называются атрибутами "expando" - если вы хотите узнать о них б ...
6
Общее количество ответов: 6

Ответ #1

Ответ на вопрос: Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

Я большой поклонник предлагаемого решения 9X_vanillajs HTML 5 (атрибуты с префиксом data-). Изменить: я 9X_javascript-library бы добавил, что, вероятно, есть лучшие примеры 9X_vanilla-javascript использования настраиваемых атрибутов. Например, данные, которые 9X_js будет использовать пользовательское приложение, не 9X_html5 имеющие аналогов в стандартных атрибутах 9X_javascript-execution (например, настройка обработчиков событий 9X_html-tag на основе чего-то, что не обязательно может 9X_vanillajs быть выражено в className или id).

52
2

  • Я всегда избегал этого, потому что это не подтверждается. Но теперь, когда я думаю об этом, втиснуть все в атрибут class = "" (например, метаданные jquery) не обязательно лучше. Есть ли какие-либо практич ...

Ответ #2

Ответ на вопрос: Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

Настраиваемые атрибуты предоставляют удобный 9X_standards способ передачи дополнительных данных на 9X_js сторону клиента. Dojo Toolkit делает это 9X_divs регулярно, и было указано (Debunking Dojo Toolkit Myths), что:

Пользовательские 9X_html-tag атрибуты всегда были действительный HTML, они 9X_javascript-library просто не проверяют при тестировании с 9X_html-tag DTD. [...] Спецификация HTML гласит, что 9X_html-tag любой нераспознанный атрибут должен быть игнорируется 9X_div механизмом рендеринга HTML в пользовательских 9X_js агентах и ​​Dojo опционально использует 9X_ecmascript это для улучшения простота разработки.

28
0

Ответ #3

Ответ на вопрос: Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

Другой вариант - определить что-то вроде 9X_divs этого в Javascript:

 
 

Затем вы можете использовать 9X_html это позже в своем коде Javascript, если 9X_.js ваша ссылка имеет идентификатор, соответствующий 9X_standards идентификатору в этой хеш-таблице.

У него 9X_html-tag нет недостатков двух других методов: нет 9X_vanilla-javascript нестандартных атрибутов или уродливого скрытого 9X_standards диапазона.

Недостаток в том, что это может 9X_html-tag оказаться излишним для таких простых вещей, как 9X_js ваш пример. Но для более сложных сценариев, когда 9X_html5 вам нужно передать больше данных, это хороший 9X_javascript-execution выбор. Особенно учитывая, что данные передаются 9X_divs в формате JSON, поэтому вы можете легко 9X_span передавать сложные объекты.

Кроме того, данные 9X_.js хранятся отдельно от форматирования, что 9X_ecmascript способствует удобству сопровождения.

У вас 9X_standards может быть даже что-то вроде этого (чего 9X_javascript-library нельзя сделать другими методами):

var poi_types = {1: "City", 2: "Restaurant"}; var poi = {1: {lat: X, lng: Y, name: "Beijing", type: 1}, 2: {lat: A, lng: B, name: "Hatsune", type: 2}}; 

...

Hatsune 

И поскольку 9X_divs вы, скорее всего, используете какой-то серверный 9X_span язык программирования, эту хеш-таблицу должно 9X_standards быть тривиально для динамической генерации 9X_standard (просто сериализуйте ее в JSON и вставьте 9X_vanillajs в раздел заголовка страницы).

9
0

Ответ #4

Ответ на вопрос: Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

В этом случае оптимальное решение

click 

и используя 9X_divs атрибут title.

Иногда я нарушаю спецификации, если 9X_.js мне это действительно нужно. Но редко и 9X_standards только не зря.

РЕДАКТИРОВАТЬ: Не знаю, почему 9X_ecmascript -1, но я указывал, что иногда вы думаете, что 9X_html5 вам нужно нарушить спецификацию, когда вы 9X_vanilla-javascript этого не делаете.

4
0

Ответ #5

Ответ на вопрос: Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

Почему бы не объявить атрибут popup_title 9X_js в настраиваемом DTD? Это решает проблему 9X_html с проверкой. Я делаю это со всеми нестандартными 9X_html-tag элементами, атрибутами и значениями и благодарю, что 9X_span эта проверка показывает мне только реальные 9X_span проблемы с моим кодом. Это также снижает 9X_javascript вероятность ошибок браузера при использовании 9X_div такого HTML.

4
0

Ответ #6

Ответ на вопрос: Нестандартные атрибуты HTML-тегов. Хорошая вещь? Плохо? Твои мысли?

Вы можете вложить скрытые элементы ввода 9X_span ВНУТРИ элемента привязки

  Link text here  

Затем вы можете 9X_div легко извлечь данные

$('#anchor_id .articleid').val() 

3
2

  • @Yeti, класс не является чем-то для CSS и недействителен, если он не отображается в стилях. Это п ...