Jump to content
  • 0

Тег command, атрибут command


DjTarik
 Share

Question

Нужна помощь экспертов.

Значит, имеется такой тег:

command

Спецификация

У него имеется атрибут:

command

Спецификация

Вопрос:

Как это понимать, где и как это использовать?

Если можно - со ссылками или с примерами.

Что-то не могу разобраться...

Спасибо.

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Как это понимать, где и как это использовать?

Там где и написано.

Внутри menu.

Не понимаю что вызывает замешательство.

Например решил ты сделать wysiwyg

И сделал тулбар как

<menu type="toolbar">

<command type="command">Полужирное начертание</command>

<command type="command">Курсивное начертание</command>

<command type="command">Подчеркнуть</command>

</menu>

Но имей в виду … сейчас это просто элементы, без каких либо дополнительных возможностей, которые даст ПА.

Поддержки то нету. И честно говоря это к лучшему. Сам стилизируешь, сам наделяешь нужным функционалом.

И вообще … куда делся дух эксперементаторов?

Просто попробуй и посмотри что получится.

http://jsfiddle.net/xEZhU/

Edited by SilentImp
  • Like 1
Link to comment
Share on other sites

  • 0

Но тэг

<menu>

не поддерживается ни одним браузером. Как же тогда практиковаться в нем?

<menu> поддерживается еще с html 3.2, другое дело что в виде:


<menu>
<li>...</li>
<li>...</li>
<li>...</li>
</menu>

и только для html3.2, В том виде в котором его вводят в html5 да никак.Пока его не реализуют в браузерах вообще бессмысленно что-то думать на данный счет, ибо фз как это будет работать и выглядеть.

Edited by wwt
Link to comment
Share on other sites

  • 0

Тег отображается? Стилизируется? Так в чем проблема?

Используйте там, где это будет целесообразно.

Я не думаю что будут проблемы потом с совместимостью.

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

Так что даже если будут…

Link to comment
Share on other sites

  • 0

Насколько я понял, в HTML5 решили унифицировать работу с интерактивными штуковинами (ссылками, кнопками, чекбоксами и т.п.), особенно в контексте веб-приложений. И ввели абстракцию "команда", которую можно применить к любой из этих штуковин, со специальным DOM API. А заодно, раз пошла такая пьянка, завели отдельный элемент, позволяющий юзать это API напрямую. Т.е. элемент <command> (обычно размещаемый в <head> и не отображаемый), по задумке, хранит некую команду (напр. вызов JS-обработчика), эту команду можно повторно юзать в разных интерактивных штуковинах (напр. в виде <button command="id_команды">), инейблить/дизейблить в одном месте для всего приложения сразу и т.п. Ну а раз все интерактивные штуки могут встречаться в меню (которое тулбар и которое контекстное), то поневоле (в силу единого API) там может встречаться и сама <command> (и это единственный случай, когда она рисуется непосредственно).

А вот дальше всё стало еще страньше и чудесатее. Мозилловцы реализовали-таки контекстные меню, но... решили, что имя "command" неинтуитивно и приводит к путанице (особенно в варианте <command command="id_другой_команды"> — когда одна команда, отображаемая в меню, ссылается на другую, невидимую), и ввели вместо него собственный элемент <menuitem> (который, насколько я понял, уже использовался в их языке описания интерфейсов, XUL). А "HTML5-диктатор" Хикси не захотел внимать мозиллиным доводам. И, насколько я понял, на сегодняшний день получается бредовая ситуация, когда единственная (известная мне) реализация работает не по спеке (и формально невалидна!), а примеры из спеки не работают-таки нигде, и вряд ли спека с реальностью в скором времени сойдутся.

Посмотрим, куда этот маразм вырулит в итоге...

  • Like 2
Link to comment
Share on other sites

  • 0

Как это понимать, где и как это использовать?

Там где и написано.

Внутри menu.

Не понимаю что вызывает замешательство.

Например решил ты сделать wysiwyg

И сделал тулбар как

<menu type="toolbar">

<command type="command">Полужирное начертание</command>

<command type="command">Курсивное начертание</command>

<command type="command">Подчеркнуть</command>

</menu>

Но имей в виду … сейчас это просто элементы, без каких либо дополнительных возможностей, которые даст ПА.

Поддержки то нету. И честно говоря это к лучшему. Сам стилизируешь, сам наделяешь нужным функционалом.

И вообще … куда делся дух эксперементаторов?

Просто попробуй и посмотри что получится.

http://jsfiddle.net/xEZhU/

Ты немного не понял. Я конкретно про ситуацию:

<command command="">

Ведь там написано:

Content attributes:

Global attributes

type

label

icon

disabled

checked

radiogroup

command

Edited by DjTarik
Link to comment
Share on other sites

  • 0

Как я понимаю, предполагалась следующая ситуация. Например, есть приложение, позволяющее что-то делать с картинками. Тогда можно сделать "абстрактную" команду, например, вызывающую какое-то действие с картинкой (скажем, наложение спецэффекта):

<command id="doStuffWithImg"
onclick="doSomeCoolFullyHTML5izedAndCSS3edShinyAndAnimatedStuffWithImage()"/>

положить ее в <head> и обращаться к ней из разных интерактивных элементов:


<button command="doStuffWithImg">Суперэффект для картинки</button>
<img src="картинка-без-эффекта.jpg" contextmenu="menuForImg" title="Кликни правой кнопкой и посмотри, что тут есть!" />
<menu type="context" id="menuForImg">
<command label="Применить суперэффект по правой кнопке" command="doStuffWithImg" />
</menu>
<button command="doStuffWithImg">А можно вызвать эффект и отсюда</button>

А потом, например, если картинка не активна, можно сделать $('#doStuffWithImg').disable() — и тем самым задизейблить обе кнопки и пункт контекстного меню, связанные с этой командой, в одно действие.

Но это пока лишь в теории (точнее, в голове Хикси)...

Link to comment
Share on other sites

  • 0

Насколько я понял, в HTML5 решили унифицировать работу с интерактивными штуковинами (ссылками, кнопками, чекбоксами и т.п.), особенно в контексте веб-приложений. И ввели абстракцию "команда", которую можно применить к любой из этих штуковин, со специальным DOM API. А заодно, раз пошла такая пьянка, завели отдельный элемент, позволяющий юзать это API напрямую. Т.е. элемент <command> (обычно размещаемый в <head> и не отображаемый), по задумке, хранит некую команду (напр. вызов JS-обработчика), эту команду можно повторно юзать в разных интерактивных штуковинах (напр. в виде <button command="id_команды">), инейблить/дизейблить в одном месте для всего приложения сразу и т.п. Ну а раз все интерактивные штуки могут встречаться в меню (которое тулбар и которое контекстное), то поневоле (в силу единого API) там может встречаться и сама <command> (и это единственный случай, когда она рисуется непосредственно).

А вот дальше всё стало еще страньше и чудесатее. Мозилловцы реализовали-таки контекстные меню, но... решили, что имя "command" неинтуитивно и приводит к путанице (особенно в варианте <command command="id_другой_команды"> — когда одна команда, отображаемая в меню, ссылается на другую, невидимую), и ввели вместо него собственный элемент <menuitem> (который, насколько я понял, уже использовался в их языке описания интерфейсов, XUL). А "HTML5-диктатор" Хикси не захотел внимать мозиллиным доводам. И, насколько я понял, на сегодняшний день получается бредовая ситуация, когда единственная (известная мне) реализация работает не по спеке (и формально невалидна!), а примеры из спеки не работают-таки нигде, и вряд ли спека с реальностью в скором времени сойдутся.

Посмотрим, куда этот маразм вырулит в итоге...

Как я понимаю, предполагалась следующая ситуация. Например, есть приложение, позволяющее что-то делать с картинками. Тогда можно сделать команду, например, вызывающую какое-то действие с картинкой (скажем, наложение спецэффекта):

<command id="doStuffWithImg"
onclick="doSomeCoolFullyHTML5izedAndCSS3edShinyAndAnimatedStuffWithImage()"/>

положить ее в <head> и обращаться к ней из разных интерактивных элементов:


<button command="doStuffWithImg">Суперэффект для картинки</button>
<img src="картинка-без-эффекта.jpg" contextmenu="menuForImg" title="Кликни правой кнопкой и посмотри, что тут есть!" />
<menu type="context" id="menuForImg">
<command label="Применить суперэффект по правой кнопке" command="doStuffWithImg" />
</menu>
<button command="doStuffWithImg">А можно вызвать эффект и отсюда</button>

А потом, например, если картинка не активна, можно сделать $('#doStuffWithImg').disable() — и тем самым задизейблить обе кнопки и пункт контекстного меню, связанные с этой командой, в одно действие.

Но это пока лишь в теории (точнее, в голове Хикси)...

Вот теперь более-менее понятно, что же они хотели там написать.

Спасибо за полный развернутый ответ.

Link to comment
Share on other sites

  • 0
Сам стилизируешь, сам наделяешь нужным функционалом.

Честно говоря, не одобряю такой подход для элементов, у которых предполагается отличная от нуля нативная функциональность. Т.к. браузеры нынче обновляются куда быстрее, чем раз в год, и возможны сюрпризы. Вот, скажем, был неподдерживаемый details с яваскриптовой эмуляцией, а браузер ВНЕЗАПНО111 добавил нативную поддержку, и опа — юзер кликнул, браузер раскрыл, а скрипт инвертировал текущее состояние и закрыл обратно... и всё :)

Для цитированного подхода, имхо, нет ничего лучше заведомо безопасных старых добрых div-ов и span-ов (если им еще логичные aria role — вообще супер).

Link to comment
Share on other sites

  • 0

Похоже, здравый смысл восторжествовал: из спеки WHATWG этот злополучный <command> дропнули, добавили <menuitem> (как в Fx-овой реализации), а внешний вид меню-тулбаров переложили сугубо на CSS. Ай да Хикси, ай да :devil:! Правда, с атрибутом command неразбериха осталась, но поживем-увидим...

В W3C-шной спеке и <command>, и <menu> помечены как "под риском удаления".

Link to comment
Share on other sites

  • 0

Похоже, здравый смысл восторжествовал: из спеки WHATWG этот злополучный <command> дропнули, добавили <menuitem> (как в Fx-овой реализации), а внешний вид меню-тулбаров переложили сугубо на CSS. Ай да Хикси, ай да :devil:! Правда, с атрибутом command неразбериха осталась, но поживем-увидим...

В W3C-шной спеке и <command>, и <menu> помечены как "под риском удаления".

Спасибо за инфу! Будем сделить дальше)

P.S. Кстати, Илья - не хочешь вести колонку по спецификациям, изменениям, текущем состоянии дел и т.д. на русском? Успех гарантирован)

Link to comment
Share on other sites

  • 0

Похоже, здравый смысл восторжествовал: из спеки WHATWG этот злополучный <command> дропнули, добавили <menuitem> (как в Fx-овой реализации), а внешний вид меню-тулбаров переложили сугубо на CSS. Ай да Хикси, ай да :devil:! Правда, с атрибутом command неразбериха осталась, но поживем-увидим...

В W3C-шной спеке и <command>, и <menu> помечены как "под риском удаления".

Спасибо за инфу! Будем сделить дальше)

P.S. Кстати, Илья - не хочешь вести колонку по спецификациям, изменениям, текущем состоянии дел и т.д. на русском? Успех гарантирован)

А сколько гарантировано работки ))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy