Якорная загрузка собственности не работает на некоторых страницах (Gmail)?

Я хочу вставить этот HTML-элемент на некоторые страницы:

<a download="somedata.csv"
   id="downloadLink"
   href="data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333"
>
    Click Me
</a>

Во всех страницах, когда я изменяю dom через плагин или вручную в инспекторе элементов, чтобы включить этот элемент в dom dom, он отлично работает!
Но если я сделаю то же самое на страницах Gmail, созданный файл не будет назван "somedata.csv", а расширение будет потеряно "csv"!

Я попробовал это в локальном файле, в файле, загруженном на localhost, и во многих внешних страницах веб-сайта, он работает во всех, кроме страниц Gmail.

Почему он не работает на страницах Gmail? И как это исправить?

Ответ 1

Для тех, кто заинтересован, я решил это с помощью Javascript/Ajax, здесь решение:

Здесь функция:

var downloadDataURI = function($, options) {
    if(!options)
        return;
    $.isPlainObject(options) || (options = {data: options});
    if(!$.browser.webkit) 
        window.location = options.data;
    options.filename || (options.filename = "download." + options.data.split(",")[0].split(";")[0].substring(5).split("/")[1]);
    options.url || (options.url = "http://download-data-uri.appspot.com/");
    $('<form method="post" action="'+options.url+'" style="display:none"><input type="hidden" name="filename" value="'+options.filename+'"/><input type="hidden" name="data" value="'+options.data+'"/></form>').submit().remove();
}

И вот как это назвать:

downloadDataURI($, {filename: "test.csv",data:"data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333"});

Ответ 2

В Chrome с JQuery я пробую этот подход:

var dataUri = "data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333"
var filename = "somedata.csv"

$("<a download='" + filename + "' href='" + dataUri + "'></a>")[0].click();

Я создал ссылку temp и нажал на событие click. но не уверены, работают ли другие браузеры.