提交时,Chrome扩展程序表单输入文字为空白

时间:2016-10-21 12:19:52

标签: javascript html google-chrome-extension

我正在尝试构建一个从链接下载大量项目的chrome扩展程序,主要逻辑位于我的download.js文件中,我希望能够指定哪个下载子文件夹I&#39 ; d喜欢将它们捆绑在一起,但输入字段的值似乎是空的。这是我目前的代码

popup.html

<!doctype html>
<html>
  <head>
    <title>Download CVs</title>
    <script src="popup.js"></script>
  </head>
  <body>
    <form id="folderForm">
      Subdir of downloads:
      <input type="text" id="folder">
      <input type="submit" id="download" value="Download CVs">
    </form>
  </body>
</html>

popup.js

function bundleItems() {
  chrome.tabs.executeScript({
    file: 'download.js'
  });
}

document.addEventListener('DOMContentLoaded', function() {
  var downloadButton = document.getElementById('download');
  downloadButton.addEventListener('click', bundleItems);
});

chrome.extension.onRequest.addListener(function(logs) {
  var folder = document.getElementById('folder').value;

  logs.map(function(log) {
    chrome.downloads.download({
      url: log.attachment.link,
      filename: folder + '/' + log.attachment.filename
    });
  });
});

我从download.jspopup.js发送信息,如果我尝试在下载中下载它,一切正常,所以我觉得发布我的download.js文件将毫无用处。但是,如果我尝试显示folder变量,那么它就是空的。我在同一个问题上搜索了很多其他帖子,但似乎没有一个解决方案适合我。

2 个答案:

答案 0 :(得分:1)

您无法提交到Chrome扩展程序页面。在这种情况下,没有Web服务器来处理您的POST请求。这样做只需重新加载文档(从表单中清除值)。

您需要阻止提交,方法是为您的按钮指定type="button"

答案 1 :(得分:0)

我会在提交按钮上添加preventDefault()。

https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault