2017-01-03 15 views
0

Я пытаюсь динамически генерировать якорь для данного контента (документы и/или изображения, хранящиеся в Cloudinary.io, в данном случае), но документы I ' m хранения имеют хеш-значение, а не имя файла (то есть: c9eed62bd1534c382a3b89241b24b1ddd17b3793 вместо sample.pdf).Javascript - генерировать якорь с href и загрузить atrributes

Вот функция, я использую для создания якоря:

function download(url, download) { 
    if (url) { 
     var a = document.createElement('a'); 

     if (a) { 
      a.href = url; 
      a.download = download || ''; 
      a.target = '_blank'; 
      a.click(); 
     } 
    } 
} 

Проблема у меня есть, когда я исполню функцию, браузер загружает файл для меня, но с именем в href атрибут, а не атрибут download.

Это событие я использую, чтобы стрелять скачать:

$('.link').on('click', function (e) { 
    download($(this).data('url'), $(this).data('name')); 
}); 

И это образец HTML элемент, содержащий данные, чтобы вызвать событие:

<span class="link" data-url="http://res.cloudinary.com/dxsky7h00/raw/upload/v1483364241/627ec3e4afa08749ac4aff8d2917a38f586a5790" data-name="fs545554545454.xls"><i class="icon-file-o"></i>fs545554545454</span> 

Может быть, я понял, атрибут download для элемента <a> неправильным образом, но я подумал, что при указании он заставляет браузер загружать ресурс, а не пытаться открыть его с одной стороны, а с другой стороны, если используется download="something", res usce будет загружаться с именем «что-то», а не с атрибутом href.

Что мне не хватает для этой функции выборки?

EDIT Я в настоящее время тестирования это на Chrome 55.0.2883.87 (64-разрядная версия), но, как this entry on caniuse.com состояний, он совместим

+1

http://caniuse.com/download/embed/description – haim770

+0

Как вы называете свою функцию? – mplungjan

+0

@ haim770 Хотя он не работает над Safari и некоторыми другими, я тестирую это на Chrome и он не работает, поэтому речь идет не о совместимости. –

ответ

0

@tsh задал правильный вопрос. Проблема заключается в том, что атрибут href ссылается на внешний ресурс, поэтому мы имеем дело с ссылкой на перекрестный источник, и браузер не позволит мне загрузить его с другим именем.

Я тестировал его с локальным файлом, и это сработало, поэтому проблема заключается в моей реализации. Спасибо всем в любом случае :)