chrome 插件调用下载时弹窗被遮住

2022-11-21 15:29:30 +08:00
 vacuitym

正在开发一个插件,想增加一个导出配置的功能,调用 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);
877 次点击
所在节点    Chrome
2 条回复
sweetcola
2022-11-21 16:20:37 +08:00
这种表现不一样的一般就是 bug 了,如果线程不阻塞的话在 download 后面加上
```JavaScript
window.close();
```
vacuitym
2022-11-21 18:15:03 +08:00
@sweetcola 是要阻塞的,谢谢回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/896814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX