我看到了同一篇文章,惊讶地发现该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( );
}