Google script Data Uri Download не инициализируется автоматически - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь заставить работать href-ссылку (dataUri) в моем листе Google в браузере Chrome терминалов нашей компании. Приведенный ниже код отлично работает в моем частном браузере P C Chrome, но не в браузере компании.

Я использовал код пользователя TheMaster, показанный по следующей ссылке:
Как для загрузки отдельного листа в формате PDF (без экспорта в Google Drive)

Chrome Версия браузера в компании: Версия 83.0.4103.61 (Официальная сборка) (64-бит)

Проблема в том, что автоматическая c загрузка не инициализирована. Интерактивная ссылка не работает при нажатии левой кнопки, но можно сохранить PDF-файл, щелкнув правой кнопкой мыши «Сохранить под».

Есть ли какие-либо настройки, которые необходимо изменить, чтобы сделать автомат c загрузку работай?

Большое спасибо.

function downloadPdfToDesktop() {
  var ss = SpreadsheetApp.getActive(),
    id = ss.getId(),
    sht = ss.getActiveSheet(),
    shtId = sht.getSheetId(),
    url =
      'https://docs.google.com/spreadsheets/d/' +
      id +
      '/export' +
      '?format=pdf&gid=' +
      shtId;
  var val = 'PDFNAME';//custom pdf name here 
  val += '.pdf';
  //can't download with a different filename directly from server
  //download and remove content-disposition header and serve as a dataURI
  //Use anchor tag's download attribute to provide a custom filename
  var res = UrlFetchApp.fetch(url, {
    headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
  });
  SpreadsheetApp.getUi().showModelessDialog(
    HtmlService.createHtmlOutput(
      '<a target ="_blank" download="' +
        val +
        '" href = "data:application/pdf;base64,' +
        Utilities.base64Encode(res.getContent()) +
        '">Click here</a> to download, if download did not start automatically' +
        '<script> \
        var a = document.querySelector("a"); \
        a.addEventListener("click",()=>{setTimeout(google.script.host.close,10)}); \
        a.click(); \
        </script>'
    ).setHeight(50),
    'Downloading PDF..'
  );
}
...