此代码,在我的Web扩展后台脚本中,在Google Chrome
中工作正常,但在Firefox
中工作不正常。我得到的错误是:
Unchecked lastError value: Error: filename must not contain illegal characters
chrome.runtime.onMessage.addListener(function (message) {
var url = message.url;
var fname = message.filename;
fname = fname.replace(/[\\\/:"*?<>|\r\n]+/g, "_");
chrome.downloads.download({
url: url,
filename: fname,
conflictAction: 'uniquify',
saveAs: true
});
});
通过console.log
检查文件名是否为有效字符串。删除filename: fname
行使其可以在Firefox中运行,但没有我想要的文件名。
EDIT:结果console.log("fname = " + fname);
,然后是console.log(fname.split('').map(c => c.charCodeAt(0)).filter(c => c < 32 || c > 127))
[不确定这是否构成答案,但是,现在这已在Firefox中确认为错误-https://bugzilla.mozilla.org/show_bug.cgi?id=1637973