複数のブラウザで作業する必要がある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" />
search
onsearch
検索入力のサポートを検出するためのより良い方法はありますか?
この機能のサポートをスニッフィングするための最良の方法は何ですか?