使用 JSzip 时未定义 saveAs

saveAs is not defined when using JSzip

我在尝试执行简单的 jszip 时遇到错误

Uncaught (in promise) ReferenceError: saveAs is not defined

很确定我包含了所有正确的文件,所以我不确定我做错了什么,有人能告诉我吗?

    <!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Download</title>
    <link rel="stylesheet" href="css/download.css">
    <script type="text/javascript" src="jszip/dist/jszip.js"></script>
    <script type="text/javascript" src="https://stuk.github.io/jszip-utils/dist/jszip-utils.js"></script>
    <script src='https://code.jquery.com/jquery-2.2.4.min.js'></script>
    <script src="js/download.js"></script>
    <link href="https://fonts.googleapis.com/css?family=Josefin+Sans" rel="stylesheet">
  </head>

  <body>
  <div class="maindiv"> 
    <header>
      <a href="index.html" class="company">Instasample</a>
      <a href="login" class="login">Login</a>
    </header>
    <div class="soulection">
    <button id="kick" onclick="download(this.id)" >kick</button>
    <button id="snare" onclick="download(this.id)" >snare</button>
    <button id="hat" onclick="download(this.id)" >hat</button>
    <button id="open hat" onclick="download(this.id)" >open hat</button>
    <button id="rim" onclick="download(this.id)" >rim</button>
    <button id="perc" onclick="download(this.id)" >perc</button>
    <button id="tom" onclick="download(this.id)" >tom</button> 
    <button id="clap" onclick="download(this.id)" >clap</button>
    <button id="foley" onclick="download(this.id)" >foley</button>
    <button id="ambient" onclick="download(this.id)" >ambient</button>
    <button id="effects" onclick="download(this.id)" >effects</button>
    <button id="vocal" onclick="download(this.id)" >vocal</button>
    <button id="synth" onclick="download(this.id)" >synth</button>
    <button id="808" onclick="download(this.id)" >808</button>
    <button id="bass" onclick="download(this.id)" >bass</button>
    <button id="sample" onclick="download(this.id)" >sample</button>
    </div>
    </div>
  </body>
  <script type="text/javascript">
    (function () {
  var zip = new JSZip();
  zip.file("Hello.txt", "Hello world\n");

  function bindEvent(el, eventName, eventHandler) {
    if (el.addEventListener){
      // standard way
      el.addEventListener(eventName, eventHandler, false);
    } else if (el.attachEvent){
      // old IE
      el.attachEvent('on'+eventName, eventHandler);
    }
  }

  // Blob
  var blobLink = document.getElementById('kick');
  if (JSZip.support.blob) {
    function downloadWithBlob() {
      zip.generateAsync({type:"blob"}).then(function (blob) {
        saveAs(blob, "hello.zip");
      }, function (err) {
          blobLink.innerHTML += " " + err;
      });
      return false;
    }
    bindEvent(blobLink, 'click', downloadWithBlob);
  } else {
    blobLink.innerHTML += " (not supported on this browser)";
  }

})();
  </script>
<footer>
  <a href="mailto:garvernr@mail.uc.edu?Subject=Hey%20Instasample" class="bottom">contact</a>
  <t class="bottomline">&nbsp;|&nbsp;</t>
  <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5LC9QK23C9M28" class="bottom2">donate</a>
  <t class="bottomline">&nbsp;|&nbsp;</t>
  <t class="bottom3">&copy 2016</t>
</footer>

</html>

他们的例子中有一条评论:

// see FileSaver.js

如果你想使用 saveAs()

,你需要那个模块

这里是:https://github.com/eligrey/FileSaver.js

在 HTML

中添加以下脚本标签后有效

<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.js"></script>