У меня есть поисковый ввод на странице HTML 5, который мне нужен для работы в нескольких браузерах:
<input type="search" placeholder="type here..." />
Я определяю, поддерживает ли браузер поиск, по тому, как браузер отобразил его как ввод search
или как обычный ввод text
:
var supportsHtml5Search = !!(inputDomElement.type !== 'text');
if (supportsHtml5Search) {
inputDomElement.addEventListener('search', searchFunction);
}
else {
// This browser doesn't support onsearch event, so handle keyup instead
inputDomElement.addEventListener('keyup', searchFunction);
}
Это сработало нормально — Chrome и Safari использовали событие onsearch
(которое также полезно срабатывает, когда они нажимают на прозрачный значок X
), а IE использовал событие keyup
(с некоторыми дополнительными проверками, которые здесь не показаны).
Однако это кажется неработающим в IE10, который отображает search
точно так же, как <input type="text" />
(например, IE9 и ниже), и возвращает search
в качестве типа (например, Chrome/Webkit), но не запускает событие onsearch
.
Есть ли лучший способ обнаружить поддержку ввода поиска?
Каков наилучший способ узнать о поддержке этой функции?
var supportsHtml5Search = !!('onsearch' in inputDomElement);
, и это возвращаетfalse
в IE10 иtrue
в Webkit. Мне еще нужно провести тестирование, но вставьте его в ответ, и я приму его :-) - person Keith   schedule 28.02.2013!!
- развеin
не всегда возвращаетboolean
? - person raina77ow   schedule 28.02.2013!!
:-S - person Keith   schedule 01.03.2013