複数のブラウザで作業する必要があるHTML5ページに検索入力があります。
<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ではこれが壊れているようです。IE10は(IE9以下のように)とsearchまったく同じように表示され、タイプ(Chrome / Webkitのように)として返されますが、イベントは発生しません。<input type="text" />searchonsearch
検索入力のサポートを検出するためのより良い方法はありますか?
この機能のサポートをスニッフィングするための最良の方法は何ですか?