![](/img/trans.png)
[英]How to make chrome.downloads.onDeterminingFilename change the filenames only for downloads from one specific site?
[英]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如何檢測文件的名稱? 一旦檢測到,它是如何更改文件的? 任何人都可以分解這些代碼的含義嗎?
一旦確定了文件名onDeterminingFilename
事件被觸發,在該事件上調用回調函數並且它需要2個參數
item
對象,其中包含下載ID,url,filename,referrer等數據(請參閱https://developer.chrome.com/extensions/downloads#type-DownloadItem ) __suggest
for
循環運行以遍歷它們。 action
在數據rule
的建議函數調用特定filename
和conflictAction
。 基本上,使用item.filename來item.filename
文件名,並通過調用__suggest
建議新文件名,其中密鑰filename
的值包含新文件名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.