我正在尝试构建一个chrome扩展程序,该扩展程序可以从链接中下载一堆项目,主要逻辑在我的download.js文件中,并且我希望能够指定要在其中将所有下载子文件夹捆绑在一起的下载子文件夹,但输入字段的值似乎为空。到目前为止,这是我的代码

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.js发送到popup.js,并且如果我尝试通过下载进行下载,则一切正常,因此我觉得发布我的download.js文件将毫无用处。但是,如果我尝试显示folder变量,则该变量为空。我搜索了许多关于同一问题的其他帖子,但这些解决方案似乎都不适合我。

最佳答案

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

您需要通过为按钮指定type="button"来阻止提交。

关于javascript - Chrome扩展程序表单输入文本在提交时为空白,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40176525/

10-11 23:35