正在开发一个插件,想增加一个导出配置的功能,调用 chrome 的下载接口,弹出的另存为对话框在 popup.html 后面。
后面测试发现只有在 chrome 全屏的时候才会出现,非全屏模式弹窗正常出现:
异常: https://i.stack.imgur.com/EAzHa.png
正常: https://i.stack.imgur.com/BSO6M.png
阅读了 chrome 的相关 api 文档也没有获得答案,在 stackoverflow 也发了帖子也还没获得回复: https://stackoverflow.com/questions/74515372/the-save-as-dialog-was-covered-up-by-popup-html-in-google-chrome-extension
有大佬知道原因吗,感激不尽
os:macOs 13.0.1 ( macbook pro 14 with Apple M1 Max )
chrome version: 107.0.5304.110 ( release ) (arm64)
function exportFile() {
chrome.storage.sync.get(['ruleProfiles'], async function (result) {
console.log('Value currently is ' + JSON.stringify(result));
if (JSON.stringify(result) === '{}') {
sourceJson = {};
} else {
sourceJson = result['ruleProfiles'];
}
console.log('ready to download');
// var url = 'data:application/json;base64,' + btoa(JSON.stringify(sourceJson));
var url = 'data:application/json;base64,' + btoa(JSON.stringify(sourceJson));
chrome.downloads.download({
url: url,
saveAs: false,
filename: 'vac-modify-header-profile.json',
conflictAction: "overwrite"
});
console.log('download success 1');
});
}
document.getElementById("exportBtn").addEventListener("click", exportFile);
1
sweetcola 2022-11-21 16:20:37 +08:00
这种表现不一样的一般就是 bug 了,如果线程不阻塞的话在 download 后面加上
```JavaScript window.close(); ``` |