簡體   English   中英

如果文件的擴展名為jpg或png,我如何使用chrome.downloads.onDeterminingFilename更改下載的文件名?

[英]How can I use chrome.downloads.onDeterminingFilename to change downloaded file names if the files have extension of jpg or png?

如果文件的擴展名為JPG或PNG,如何使用chrome.downloads.onDeterminingFilename更改下載的文件名?

我在看這里的例子:

chrome.downloads.onDeterminingFilename.addListener(function(item, __suggest) {
  function suggest(filename, conflictAction) {
    __suggest({filename: filename,
               conflictAction: conflictAction,
               conflict_action: conflictAction});
  }
  var rules = localStorage.rules;
  try {
    rules = JSON.parse(rules);
  } catch (e) {
    localStorage.rules = JSON.stringify([]);
  }
  for (var index = 0; index < rules.length; ++index) {
    var rule = rules[index];
    if (rule.enabled && matches(rule, item)) {
      if (rule.action == 'overwrite') {
        suggest(item.filename, 'overwrite');
      } else if (rule.action == 'prompt') {
        suggest(item.filename, 'prompt');
      } else if (rule.action == 'js') {
        eval(rule.action_js);
      }
      break;
    }
  }
});

這令人困惑。 上面的chrome.downloads.onDeterminingFilename如何檢測文件的名稱? 一旦檢測到,它是如何更改文件的? 任何人都可以分解這些代碼的含義嗎?

參考: http//developer.chrome.com/extensions/samples

  • 一旦確定了文件名onDeterminingFilename事件被觸發,在該事件上調用回調函數並且它需要2個參數

    1. item對象,其中包含下載ID,url,filename,referrer等數據(請參閱https://developer.chrome.com/extensions/downloads#type-DownloadItem
    2. __suggest必須被調用以同步或異步傳遞建議。
  • 定義了一個建議函數,該函數將用於根據特定規則調用__suggest
  • 所有規則都從本地內存訪問,並且for循環運行以遍歷它們。
  • 對於基於每個迭代action在數據rule的建議函數調用特定filenameconflictAction

基本上,使用item.filename來item.filename文件名,並通過調用__suggest建議新文件名,其中密鑰filename的值包含新文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM