【问题标题】:'Download Selected Links' sample extension is not downloading the links [closed]“下载选定链接”示例扩展未下载链接[关闭]
【发布时间】:2017-09-22 21:16:11
【问题描述】:

我想创建一个 Chrome 扩展程序,允许用户下载通过一个或多个正则表达式捕获的文本。为了了解如何创建这样的扩展,我下载并安装了 Chrome 的 Sample Extensions 之一:标题为 Download Selected Links

扩展程序图标显示在我的浏览器中,并且正则表达式似乎工作正常(弹出窗口显示一长串链接,这些链接似乎显然已从我所在的选项卡中删除),但是当我点击“全部下载”按钮,弹出窗口关闭,我选择的链接都没有下载。

【问题讨论】:

  • 您需要使用debugging 为自己提供有关问题所在的线索。

标签: google-chrome-extension


【解决方案1】:

我可以通过从popup.js 中删除调用window.close() 的代码行来使其工作:

// Download all visible checked links.
function downloadCheckedLinks() {
  for (var i = 0; i < visibleLinks.length; ++i) {
    if (document.getElementById('check' + i).checked) {
      chrome.downloads.download({url: visibleLinks[i]},
                                             function(id) {
      });
    }
  }
  window.close(); // <-- Delete this line.
}

单击“全部下载”按钮后,弹出窗口现在将保持打开状态,下载应在几分之一秒后开始。我最好的猜测是,使用window.close() 关闭弹出窗口可能会禁用一些开始下载所需的权限。

我进行了一项实验,选择了所有 URL(很长的列表,可能 50 或更多),然后单击“全部下载”,然后单击远离弹出窗口以关闭它,然后前五页左右已下载,但之后就没有了。

我还遇到了这个看似有用的 SO 问题: How to download a file via a Chrome Content Script? ...但我无法让消息传递方法正常工作(向 background.html 发送消息,指示它下载指定的 URL)。

【讨论】:

  • 你可以在最后处理的item的回调中简单地调用window.close。
  • 关闭弹窗卸载页面;因此,中止所有排队等待执行的代码。如果您无法让 Messaging 正常工作,请提出一个新问题。
猜你喜欢
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多