1

HTML5 要素には、 filename.xml が次のように<datalist>なる属性があります。data="filename.xml"

<?xml version="1.0"?>
<select xmlns="http://www.w3.org/1999/xhtml">
  <option value="someValue" />
  <option value="anotherValue" />
</select>

ただし、これはまだ実装されていないようです (Chrome、Safari、Firefox、Opera を試しました)。ブラウザはそれを実装していますか? (もうすぐ?)

編集:ソース

4

2 に答える 2

2

ここで datalist のサポートを確認できます。

http://caniuse.com/#search=datalist

他の誰かが特にデータ属性に関する情報を提供するかもしれません。

ここにはポリフィルがあり、ブラウザのサポート (または欠如) についても言及しています。

于 2013-06-05T00:58:40.990 に答える
2

私は同じ記事を見て、この属性が公式仕様の一部ではないことを読んで驚きましたがdata、ブログ投稿からの情報に依存する場合、それは予想されることだと思います.

とにかく、私はその実装が気に入ったので、それを機能させる JavaScript 関数を作成することにしました。

window.addEventListener( 'load', function( ) {
    var dataList = document.getElementById( 'myDataList' );
    getDataList( dataList, dataList.getAttribute( 'data' ) );
} );

function getDataList( dataList, dataFile )
{
    var http = new XMLHttpRequest( );
    var options, parser, xml;

    http.onreadystatechange = function( )
    {
        if( http.readyState == 4 && http.status == 200 )
        {
            if( window.DOMParser )
            {
                parser = new DOMParser( );
                xml = parser.parseFromString( http.responseText, "text/xml" );
            }
            else
            {
                xml = new ActiveXObject( "Microsoft.XMLDOM" );
                xml.async = false;
                xml.loadXML( http.responseText ); 
            }

            options = xml.getElementsByTagName( 'option' );

            for( var i = 0; i < options.length; i++ )
            {
                var option = document.createElement( 'option' );
                option.value = options[i].value;
                dataList.appendChild( option );
            }
        }
    }

    http.open( "GET", dataFile, true );
    http.send( );
}
于 2013-08-11T05:19:39.580 に答える