我有一个地图网络应用程序,希望能够在GPX文件中保存路线数据。为此,我生成一个包含数据的锚标记,并使用HTML5 download属性设置文件名。这在Firefox(29.0.1)和Chrome(37.0.2062.94)中的OS X(10.9.4)上按预期工作,但在Safari(7.0.6)中,它忽略了下载属性中的名称并保存了一个名为只是"未知"。
这是我的HTML文件中的链接:
<a href="#" id="map_save">Save to GPX</a>
这就是它在我的Javascript文件中的链接方式(使用jQuery):
function exportToGPX( gpxData ) {
gpxData = 'data:application/gpx+xml;charset=utf-8,' + encodeURIComponent( gpxData );
$( '#map_save' ).attr( { 'href': gpxData ,'download': 'myfile.gpx' } );
}
$( document ).ready( function() {
$( '#map_save' ).click( function( event ) {
exportToGPX.apply();
} );
} );
我所看到的一切都表明Safari应该尊重这个属性,如果它在Chrome中运行,它可能不是WebKit问题。使用Web Inspector查看DOM树,显示属性已正确应用:
<a href="data:application/gpx+xml;ch…09%3C%2Ftrk%3E%0A%3C%2Fgpx%3E" id="map_save" download="myfile.gpx">Save to GPX</a>
正如我所说,它确实下载了文件,只是没有给它一个正确的名称。有什么我做错了或者还需要做些什么才能在Safari中正常工作?