google-chrome-extension - 为什么 chrome.downloads.download 在不添加另一个函数的情况下不起作用。(当在它后面添加alert() 时它就起作用了)

标签 google-chrome-extension

我正在开发一个使用 chrome.downloads.download API 的 Chrome 扩展程序。我的扩展是捕获下载事件并触发 webkitNotification。我从谷歌的一个示例中发布了我修改后的主要工作功能。

function downloadCheckedLinks() {
    for (var i = 0; i < visibleLinks.length; ++i) {
        if (document.getElementById('check' + i).checked) {         
            chrome.downloads.download({url: visibleLinks[i]}, function(id) {
                var notification = window.webkitNotifications.createNotification('',
                               'OMG', 'hello within for loop, succeed!');
                notification.show();
            });
            alert("function executed!");
        }
    }
    window.close();
}

问题是,当我删除 alert("function returned") 时,它仅在 Debug模式下工作,在该模式下,我在 for 循环中设置了一个断点并单步执行代码。在正常模式下,我必须添加一些东西才能使其工作(即alert())。我觉得这是因为 chrome.downloads.download() 的异步函数调用。

由于我是网络开发这个词的新手,所以我不知道我的问题出在哪里。任何人都可以帮我弄清楚这里发生了什么吗?如果可能的话,您能否教我一下,在像 chrome.downloads.download() 这样的异步函数调用中,何时准确调用匿名回调函数?

最佳答案

注释window.close()可以工作。我猜当窗口关闭时,下载调用就会被取消。但我无法给出具体原因。

关于google-chrome-extension - 为什么 chrome.downloads.download 在不添加另一个函数的情况下不起作用。(当在它后面添加alert() 时它就起作用了),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12353127/

相关文章:

css - 为 PNG 上的 webkit mask 使用颜色

javascript - chrome.tabs.executeScript : Doesn't work when I tried to insert an image into specific website

javascript - 在 Chrome 扩展中执行使用 AJAX 检索到的 javascript

ubuntu - 如何审核 chrome 扩展的开源代码?

javascript - 如何在没有jquery的情况下创建元素后执行javascript代码?

google-chrome - 使用 chrome 扩展向页面添加按钮

javascript - chrome 扩展没有运行搜索到 divs jquery 代码

javascript - 以不可检测的方式检查 WebSocket 帧

javascript - 使用 Promise 时 OAuth 流程不工作

javascript - 如何根据 div 内容切换 div 的可见性