2011-10-27 20 views
2

にあなたがHTML5に知っているように、私たちはコンバート日付タイプ(HTML5)のjavascript

<input type="date" name="birthday" />

を持っているが、それはすべてのブラウザでサポートされなくなります。 私はそれをページで使用する必要があり、クライアントのブラウザがそれをサポートしていない場合は、代わりにJavaScriptでカレンダーを作成します。

どのようにブラウザがそれをサポートしているかどうかを理解できますか? (私はクライアントサイドでそれを行う必要があります。サーバ側スクリプトのエージェントクライアントではなくPHPで行います)

答えて

2

input type=dateがサポートされているかどうかをテストするのは難しくありません。コンテナを作成し、innerHTML<input type="date">に設定します。次に、要素のtype属性がdateであるかどうかをチェックします(重要な属性の認識されない値は無視されます)。

上記の方法の実装を以下に示します。これはスタンドアロンの機能であり、プラグインやライブラリを必要としません。 フィドル:http://jsfiddle.net/aWYbZ/

function isInputDateSupported(){ 
    var d = document.createElement("div"); 
    d.innerHTML = '<input type="date">' 
    return d.firstChild.type == "date"; 
} 
+2

+1しかし、単純に入力要素を作成してみませんか? http://jsfiddle.net/pimvdb/aWYbZ/1/ – pimvdb

2

Modernizr libraryはあなたがHTML5の機能をサポートするブラウザどの検出を助けるために作成されました。

HTML5とCSS3の新しい機能を利用すると、古いブラウザの操作を制御することを犠牲にすることがあります。 Modernizr 2 は、ブラウザやデバイスに関係なく、正確に正しく動作する、最高のウェブサイトとアプリケーションを作成するための出発点です 。

+0

くそ、あなたは37秒で私を倒す。 – ceejayoz

2

ModernizrModernizrModernizr JavaScriptライブラリは機能の検出を行いますので、さまざまなブラウザでさまざまなレベルのサポートに簡単に適応できます。また、特定のHTML5/CSS3機能を古いブラウザに透過的に移植する「ポリフィル」へのリンクもあります。

関連する問題