未捕获的ReferenceError:未在HTMLAnchorElement.onclick(index.html:49)中定义search_for_all

时间:2018-03-28 04:45:38

标签: javascript html

我基本上在HTML页面中按钮的 onclick 事件中调用位于JS文件中的名为 search_for_all()的函数。但我不断收到上述错误。

我应该在HTML文件的<p>标记中打印函数的结果。以下是包含 onclick 事件的代码 -

<a id="files" class="btn btn-block btn-lg btn-primary" onclick="search_for_all('https://demo.dataverse.org', 0, 'file')">Files</a>

我在JavaScript函数中使用document.getElementById("output").innerHTML;来打印其结果。

1 个答案:

答案 0 :(得分:0)

使用内联事件处理程序是一种不好的做法,导致代码性能差,难以管理的代码。请认真考虑使用JavaScript附加您的活动,例如:https://developer.mozilla.org/en/DOM/element.addEventListener

如果将侦听器附加到定义函数的同一范围内,则它应该可以正常工作。例如:

HTML:

<a id="files" class="btn btn-block btn-lg btn-primary">Files</a>

使用Javascript:

// ... lines of code ...
// declaration of search_for_all function:
function search_for_all(url, param1, param2) {
  // ...
}
document.querySelector('#files').addEventListener('click', () => {
  search_for_all('https://demo.dataverse.org', 0, 'file');
});