首页 > 解决方案 > Javascript未捕获引用错误,调用未定义onclick

问题描述

这是一个将文本区域保存到文本文件中的 javascript 代码。这个小提琴也一样。:
https

://jsfiddle.net/pzvvhfv6/我需要在我的代码中添加这个功能,所以修改它以便单击按钮,保存文本区域并创建一个新文件。但是,出于某种奇怪的原因,它在单击时显示未捕获的引用错误。下面是我正在处理的代码。
https://jsfiddle.net/vu7thh34/

function call(){
   var create = document.getElementById('create');
    var textbox = document.getElementById('textbox');
    var link = document.getElementById('downloadlink');
    link.href = makeTextFile(textbox.value);
    link.style.display = 'block';
  }

HTML:

<textarea id="textbox">Type something here</textarea>  <button id="create">Create file</button> <a download="info.txt" id="downloadlink" style="display: none">Download</a>

代码有问题吗?

标签: javascriptbuttononclickaddeventlistenerjsfiddle

解决方案


JSFiddle 不识别引用较低 JavaScript 部分中的函数的内联处理程序。

无论如何,内联处理程序都是不好的做法——它们本质上是eval在 HTML 标记中。改为使用 Javascript 正确附加侦听器,JSFiddle 不会有任何问题:

document.querySelector('#create').onclick = call;

另一种选择是将代码放在 HTML 中的<script>标记中,而不是 JSFiddle 的 Javascript部分中,但这不是一个好主意。


推荐阅读