Moz-, webkit- и прочие vender-грабли. Список сопоставлений браузерных движков

Moz-, webkit- и прочие vender-грабли. Список сопоставлений браузерных движков и соответствующих им vendor prefix

Moz-, webkit- и прочие vender-грабли

» » Сообщение:

Moz-, webkit- и прочие vender-грабли. Список сопоставлений браузерных движков и соответствующих им vendor prefix

Основными инициаторами новых возможностей и проводниками передовых стандартов являются, вполне ожидаемо, производители браузеров.
Совершенно привычно, когда новейшие технологии впервые описываются или даже демонстрируются на какой-нибудь IT-конференции представителями команды разработчиков Google Chrome, Mozilla Firefox, Internet Explorer или Opera.
Естественно, любую удачную технологию, тем более технологию, которая в перспективе станет стандартом, стремятся реализовать все, но ее воплощение и приоритеты разработки различных ее аспектов могут существенно отличаться.
Этот факт и вышеупомянутые проблемы совместимости вместе с желанием не отстать, а, наоборот, опередить время часто вынуждают производителей браузеров «локализовывать» API новых, нестандартизированных технологий с помощью так называемых «vendor prefix».

Это выражается в появлении объектов и методов точных копий будущего, пока не стандартизированного API, некой новой чудесной технологии, к названию которых добавлен префикс, созвучный с названием браузера (или движка), на котором этот элемент будет работать.
То есть если, например, замечательный объект FileReader, используемый в FileAPI в настоящий момент, не распознается ни одним общеупотребительным браузером, то объект mozFileReader вполне можно использовать в FireFox, а, например, webkitFileReader – в Google Chrome и Safari.

В дальнейшем материале vendor prefix, кроме особенных случаев, не используются, но если приведенный в книге код не будет работать, нелишней процедурой будет попробовать их применить.
В реальных приложениях, использующих «пограничные» технологии, тоже лучше подстраховать пользователя, как это сделано в коде, приведенном ниже:

Код: Выделить всё Развернуть
if (file.webkitSlice) {
  var blob = file.webkitSlice(startingByte, endindByte);
} else if (file.mozSlice) {
  var blob = file.mozSlice(startingByte, endindByte);
}

На всякий случай вот список сопоставлений браузерных движков и соответствующих им vendor prefix:

  • ‰ -ms – Trident (IE6, IE7, IE 8, Internet Explorer 9, Internet Explorer 10);
  • ‰ -mso – Microsoft Office;
  • ‰ -moz – Gecko (Firefox, Thunderbird, Epiphany);
  • ‰ -o – Presto (Opera, Opera Mobile, Nintendo DS Browser, Nokia 770, Internet Channel);
  • ‰ -atsc – Advanced Television Standards Committee;
  • ‰ -wap – The WAP Forum;
  • ‰ -webkit – WebKit (Chrome, Safari, Stainless, Raven);
  • ‰ -khtml – Konqueror browser.

Разумеется, vendor prefix – это те самые классические «костыли», применять которое вроде бы нехорошо по определению.
Но мы живем в реальном мире и пишем для реальных людей реально работающие приложения, не так ли?

© Из книги К. Сухова: [anchor=http://likbezz.ru/viewtopic.php ... а role]HTML5[/anchor] - Путеводитель по технологии

moz-, webkit-, vender, грабли, google chrome, mozilla firefox, internet explorer, opera, filereader, fileapi