首页 > 解决方案 > 为什么我在将 javascript 连接到简单 html 时出错?

问题描述

我正在尝试将szimek 的签名板连接到我的简单 html 文档。我正在测试程序,但无法在我的 atom 文本编辑器中运行:

html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
      "https://cdn.jsdelivr.net/npm/signature_pad@3.0.0-beta.3/dist/signature_pad.min.js"
    </script>

  </head>
  <h1>
  Please Sign
</h1>
<div class="wrapper">

  <canvas id="signature-pad" class="signature-pad" width=400 height=200></canvas>
</div>
<div>
  <button id="save">Save</button>
  <button id="clear">Clear</button>
</div>

  <script src="script.js"></script>
  </body>
</html>

脚本.js

var signaturePad = new SignaturePad(document.getElementById('signature-pad'), {
  backgroundColor: 'rgba(255, 255, 255, 0)',
  penColor: 'rgb(0, 0, 0)'
});
var saveButton = document.getElementById('save');
var cancelButton = document.getElementById('clear');

saveButton.addEventListener('click', function (event) {
  var data = signaturePad.toDataURL('image/png');

// Send data to server instead...
  window.open(data);
});

cancelButton.addEventListener('click', function (event) {
  signaturePad.clear();
});

我已将相同的代码放入 js fiddle,项目运行良好。我通过 CDN 连接,我在自己的项目检查中遇到的错误是:

script.js:1 Uncaught ReferenceError: SignaturePad is not defined
    at script.js:1

标签: javascripthtmlcdn

解决方案


<script type="text/javascript">
  "https://cdn.jsdelivr.net/npm/signature_pad@3.0.0-beta.3/dist/signature_pad.min.js"
</script>

不加载脚本https://cdn.jsdelivr.net/npm/signature_pad@3.0.0-beta.3/dist/signature_pad.min.js它是一个包含字符串的脚本"https://cdn.jsdelivr.net/npm/signature_pad@3.0.0-beta.3/dist/signature_pad.min.js"

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/signature_pad@3.0.0-beta.3/dist/signature_pad.min.js"></script>

推荐阅读