javascript - onclick() 给出错误:ReferenceError: LoadAjax is not defined at HTMLInputElement.onclick
问题描述
这是我的代码,它根本不起作用。
HTML 代码:
<input type="button" value="Click Here" onclick="LoadAjax()"/>
JS代码:
function LoadAjax(){
if (window.XMLHttpRequest) {
request = new XMLHttpRequest()
} else {
request = new ActiveXObject('Microsoft.XMLHTTP')
}
//request.open('GET', 'data.json')
request.open('GET', 'http://localhost:20301/api/values')
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var items = JSON.parse(request.responseText)
console.log(items);
var output = '<ul>'
for (var key in items) {
console.log(items[key])
output += '<li>' + items[key].Name + ' | ' + items[key].Family + '</li>'
}
output += '</ul>'
document.getElementById('update').innerHTML = output
}
}
request.send()
}
解决方案
如果您在 HTML 文件中都有这两个文件,请按此方式进行。它将通过在加载后绑定“onClick”来防止在加载之前调用该函数:
<input type="button" value="Click Here" id="myID">
<script>
function LoadAjax(){
if (window.XMLHttpRequest) {
request = new XMLHttpRequest()
} else {
request = new ActiveXObject('Microsoft.XMLHTTP')
}
//request.open('GET', 'data.json')
request.open('GET', 'http://localhost:20301/api/values')
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var items = JSON.parse(request.responseText)
console.log(items);
var output = '<ul>'
for (var key in items) {
console.log(items[key])
output += '<li>' + items[key].Name + ' | ' + items[key].Family + '</li>'
}
output += '</ul>'
document.getElementById('update').innerHTML = output
}
}
request.send()
}
myElement = document.getElementById("myID");
myElement.onclick = function() { LoadAjax(); return false; }
</script>
如果您在单独的文件中获得它,请使用它(注意!在 js 文件中,您不要使用 HTML“脚本”标签。
我的.html:
[...]
<input type="button" value="Click Here" id="myID">
[...]
<script src="my.js"></script>
[...]
我的.js:
function LoadAjax(){
if (window.XMLHttpRequest) {
request = new XMLHttpRequest()
} else {
request = new ActiveXObject('Microsoft.XMLHTTP')
}
//request.open('GET', 'data.json')
request.open('GET', 'http://localhost:20301/api/values')
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var items = JSON.parse(request.responseText)
console.log(items);
var output = '<ul>'
for (var key in items) {
console.log(items[key])
output += '<li>' + items[key].Name + ' | ' + items[key].Family + '</li>'
}
output += '</ul>'
document.getElementById('update').innerHTML = output
}
}
request.send()
}
myElement = document.getElementById("myID");
myElement.onclick = function() { LoadAjax(); return false; }
推荐阅读
- flutter - Flutter:如何将Listview的水平滚动条放在列表的中间?
- javascript - 在 JS 中将 EventListener 添加到 EventTarget 时,在性能方面有什么更好的?
- mysql - 在 Aurora AWS 无服务器 MySQL 上启用 SSL
- python - 带空格的不和谐命令?
- plugins - Docusaurus:在加载内容期间写入文件系统是插件的不良做法吗?
- html - 如何在 DOM 中设置 HTML 字符串并绑定到对象?
- javascript - 在 JavaScript 中对列表进行降序排序
- javascript - 使用对象的子值状态对象和子组件
- php - 以编程方式设置 WooCommerce 产品类别,工作但产品未在 cat 中显示
- php - 如何在php中检查重定向的url是否有效