Превратите pdf-ссылку для скачивания из json ответа API в представление в привязке браузера - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь создать автоматическую c ленту новостей для моего сайта, отображающую пресс-релизы компаний и дату публикации. Я получаю данные, используя API Globenewswire. Ответ API - это файл JSON, содержащий ссылку для скачивания в формате PDF. Тем не менее, я хотел бы открыть PDF в новом окне браузера вместо загрузки. например, как сама компания делает это на своей веб-странице. Есть ли какой-нибудь способ заставить «просмотр в браузере» вместо загрузки?

ссылка на мой желаемый результат https://cbrain.dk/investor/boersmeddelelser/2020

Пример запроса: https://www.globenewswire.com/JsonFeed/organization/oeS8R1yPkSPvIlCYI7mnFg== / Вложения / Все / StartDate / 20200101 / pdf / true / EndDate / 20201231 / Макс. / 100 / TimeZone / UTC /? DateFormat = dd + MMM + гггг

Пример ссылки для скачивания pdf из JSON ответ: http://www.globenewswire.com/news-release/2020/02/20/1987587/0/da/Eksporten-er-fordoblet-og-udg%C3%B8r-nu-14-af-oms%C3%A6tningen-mens-indtjeningen-er-mere-end-tredoblet.html?pdf=1

Я сделал функцию javascript для заполнения div данными

function displayPressRelease(year, div, company){

const request = new XMLHttpRequest();
request.open('GET', 'https://www.globenewswire.com/JsonFeed/organization/' + company + '/StartDate/' + year + '0101/EndDate/' + year + '1231/Max/100/PDF/True/TimeZone/UTC/?dateFormat=dd+MMM+yyyy');
request.send(); 

request.onload = () => {
  if (request.status === 200) {
    console.log("Success"); // So extract data from json and create table

    var table = "<h1>" + year +"</h1>";
    var i;
    var date;
    var title;
    var url;

    for (i = 0; i < JSON.parse(request.response).length; i++) {

    date = JSON.parse(request.response)[i].ReleaseDateTime
    title = JSON.parse(request.response)[i].Title;
    url = JSON.parse(request.response)[i].PdfDownloadUrl;

    table +="<p>"+date+"</p>";
    table += "<a href=\""+url+"\">"+title+"</a>";
    }
    document.getElementById(div).innerHTML = table;
  } 
};

request.onerror = () => {
  console.log("error")
};
}
...