Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   методика определения поддержки стилизации placeholdr'а (https://javascript.ru/forum/css-html/35541-metodika-opredeleniya-podderzhki-stilizacii-placeholdr%27.html)

Invis1ble 14.02.2013 05:11

методика определения поддержки стилизации placeholdr'а
 
Здравствуйте.
Подскажите пожалуйста, как грамотно определить с помощью JavaScript поддерживает ли браузер цветные placeholder'ы ?
Речь идет о "::-webkit-input-placeholder", ":-moz-placeholder", "::-moz-placeholder", ":-ms-input-placeholder". Парсинг UA не предлагать :no:
Спасибо!

danik.js 14.02.2013 09:05

Так вроде только Опера и не поддерживает)
Учитывая что Опера вскоре перейдет на WebKit движок проблема отпадет сама по себе )

Invis1ble 14.02.2013 18:21

До этого "вскоре" я еще 100 раз успею сдать проект, а заказчик как раз на Опере :(
По сабжу - есть какие-нибудь идеи? Тут даже больше мне интересно с точки зрения разработки, как такие вещи отслеживаются в принципе.

danik.js 14.02.2013 18:40

Насколько я знаю в javascript нет особых средств работы с псевдоэлементами. Разве что getComputedStyle(input, '::webkit-input-placeholder') - может с этим можно что-то сделать. Но опять же в IE и Opera не работает. Так что, как я уже намекнул - сниффинг браузера...

Deff 14.02.2013 19:45

Invis1ble,
Проще наверно сделать прозрачную основу у input и ставить аналог placeholdеr
бекграндом к обрамляющему input span, удаляемому по событию наведения с анализом ввода
Либо http://www.xiper.net/collect/js-plug...aceholder.html

Invis1ble 14.02.2013 19:54

Цитата:

Сообщение от Deff (Сообщение 234054)
Invis1ble,
Проще наверно сделать прозрачную основу у input и ставить аналог placeholdеr
бекграндом к обрамляющему input span, удаляемому по событию наведения с анализом ввода
Либо http://www.xiper.net/collect/js-plug...aceholder.html

я так и сделал, написал плагин к jquery. Просто хочу отследить ситуации, когда подключать его не нужно. На данный момент приходится сниффить оперу и ie9

Invis1ble 14.02.2013 19:57

Оффтоп: как подписаться на тему? У меня в "Опциях темы" есть пункт "Отменить подписку на эту тему". Но уведомления на мыло не приходят.

Deff 14.02.2013 20:14

Цитата:

Сообщение от Invis1ble
я так и сделал, написал плагин к jquery. Просто хочу отследить ситуации, когда подключать его не нужно. На данный момент приходится сниффить оперу и ie9

Возможно для единобразия стоит ставить всем.Типично инпутов на странице не много, вероятней всего стиль установленных будет чуть отличаться от дефолтного, но зато идентичен по бразерам

Deff 14.02.2013 20:16

Цитата:

Сообщение от Invis1ble
Оффтоп: как подписаться на тему? У меня в "Опциях темы" есть пункт "Отменить подписку на эту тему". Но уведомления на мыло не приходят.

Личный кабинет, Управлять подписками

Invis1ble 14.02.2013 21:34

Цитата:

Сообщение от Deff (Сообщение 234063)
Возможно для единобразия стоит ставить всем.Типично инпутов на странице не много, вероятней всего стиль установленных будет чуть отличаться от дефолтного, но зато идентичен по бразерам

стиль отличается от дефолтного только цветом, поэтому подключать для всех не имеет особого смысла. Так что да здравствуют костыли в виде сниффинга :)

Цитата:

Сообщение от Deff (Сообщение 234064)
Личный кабинет, Управлять подписками

Цитата:

Рассылки

Текущие подписки
Нет подписок в данный момент
Управлять подписками
Мои рассылки
по ссылке "Мои рассылки" мне предагается подписаться на "Статьи и мероприятия" :(

Deff 14.02.2013 21:48

Invis1ble,
Сорри - Мои личные данные и профиль для форума - редактировать и слево

Invis1ble 14.02.2013 21:54

Deff, спасибо, нашел.

danik.js 15.02.2013 00:54

Invis1ble, все просто.
if (!('placeholder' in element) || $.browser.opera) {
    эмулируем...
}

Invis1ble 15.02.2013 01:05

danik.js, это не то, что меня интересовало. Как проверить поддержку самого плэйсхолдера я в курсе.

ЗЫ. В любом случае, спасибо всем за участие в обсуждении.

danik.js 15.02.2013 02:30

Цитата:

Сообщение от Invis1ble
danik.js, это не то, что меня интересовало

Задача сводится к определению Оперы, разве нет? Ну можешь помучаться с getComputedStyle еще ). Опять же тебе это ничего не даст, так как этот метод не работает с IE и Opera.

Кстати, мож кто в курсе, в спецификации есть что-нибудь про псевдоэлемент-плэйсхолдер?

Invis1ble 15.02.2013 02:38

Если смотреть со стороны решения данной конкретной задачи здесь и сейчас - то да, но мне интересен более универсальный подход. Судя по всему, его не существует.
Насчет спецификации - не в курсе.

рони 15.02.2013 16:32

Цитата:

Сообщение от danik.js
этот метод не работает с IE

ниже 10
:-ms-input-placeholder pseudo-class (Internet Explorer)

danik.js 15.02.2013 17:24

рони, речь была о поддержке псевдоэлементов в getComputedStyle

dmitriymar 16.02.2013 17:38

Цитата:

Сообщение от danik.js
е что getComputedStyle(input, '::webkit-input-placeholder') - может с этим можно что-то сделать. Но опять же в IE и Opera не работает

currentStyle

danik.js 16.02.2013 17:46

Цитата:

Сообщение от dmitriymar
currentStyle

Еще один ))
dmitriymar, как можно через currentStyle работать с псевдоэлементами?

dmitriymar 16.02.2013 17:51

Цитата:

Сообщение от Invis1ble
Подскажите пожалуйста, как грамотно определить с помощью JavaScript поддерживает ли браузер цветные placeholder'ы ?

Цитата:

Сообщение от danik.js
dmitriymar, как можно через currentStyle работать с псевдоэлементами?

причём работать? речь идёт о получении сгенерированного стиля и на основе этого сделать выводы.
вообще то currentStyle аналог getComputedStyle .
не нравиться такой вариант -проверить браузер и его версию -и исходя из этого проделывать действия

danik.js 16.02.2013 18:21

dmitriymar, ты не понял сути. Перечитай ветку.

Цитата:

Сообщение от dmitriymar
не нравиться такой вариант -проверить браузер и его версию

Этот вариант отклонен уже давно. Вопрос был - как определить фичу, а не версию браузера. getComputedStyle позволяет работать с псевдоэлементами:
getComputedStyle(h3, ':after')

Речь о том, что не все браузеры, умеющие getComputedStyle, принимают второй аргумент: https://developer.mozilla.org/ru/doc...tComputedStyle

Так или иначе, я даже не знаю как использовать getComputedStyle для определения доступности псевдоэлемента. Есть идеи?


Часовой пояс GMT +3, время: 00:46.