имя файла, переданное в chrome .downloads.download API, игнорируется - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь инициировать загрузку файла в фоновом режиме расширения Chrome js, используя chrome.downloads.download API:

chrome.runtime.onMessage.addListener(
  function (arg) {
    chrome.downloads.download({
      url: arg[0],
      filename: arg[1] + ".jpg",
      conflictAction: "uniquify",
      saveAs: false
    });
  });

Однако указанный filename не соблюдается - вместо этого используется исходное имя файла.

Я тестировал тот же сценарий на Firefox, и он там работает, как ожидалось, но не Chrome.

Я знаю, что есть также Событие chrome.downloads.onDeterminingFilename, для которого я могу зарегистрировать слушателя и переопределить имя файла оттуда, но оно не подходит для моего варианта использования, поскольку имя файла, которое я хотел бы использовать, передается слушателю onMessage.

Не уверен, что я упустил что-нибудь очевидное. Спасибо!

**** Обновление ****

Как я позже понял, проблема может быть связана с каким-то другим обязательным расширением Chrome, которое также присутствует, поскольку я использую корп. ноутбук.

1 Ответ

1 голос
/ 08 мая 2020

Я бы рекомендовал использовать console.log(typeof arg[1]); перед вызовом API chrome .downloads.download, чтобы подтвердить, что это строка. Вы также можете попробовать использовать литерал шаблона для создания имени файла.

filename: `${arg[1]}.jpg`,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...