我有一个 Map Web应用程序,并希望能够在GPX文件中保存路由数据 . 为此,我生成一个包含数据的锚标记,并使用HTML5 download属性设置文件名 . 这在Firefox(29.0.1)和Chrome(37.0.2062.94)的操作系统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中正常工作?