Javascript Can';t运行js文件
我试着用html和jscript创建一个21点游戏,这就是我在html中加载了de js文件,我知道已经加载了,因为调试器tell的me de文件已经遇到,但该文件没有运行。 js新手 这是文件Javascript Can';t运行js文件,javascript,html,Javascript,Html,我试着用html和jscript创建一个21点游戏,这就是我在html中加载了de js文件,我知道已经加载了,因为调试器tell的me de文件已经遇到,但该文件没有运行。 js新手 这是文件 <!DOCTYPE html> <html> <head> <title>BlackJack by RuiVieira</title> </head> <body> <div id="zonaBanca"&
<!DOCTYPE html>
<html>
<head>
<title>BlackJack by RuiVieira</title>
</head>
<body>
<div id="zonaBanca">
<h1>Banca</h1>
</div>
<div id="zonaJogoBanca">
</div>
<div id="zonaJogador">
<h1>Jogador</h1>
</div>
<div id="zonaJogoJogador">
</div>
<div id="zonaAposta">
<h2>Aposta</h2>
<button id="subir">+1</button>
<button id="parar">stop</button>
<div>
<input id="valorAposta" type="number" min="0" step="1"/>
</div>
<div>
<button id="botaoAposta">Apostar</button>
</div>
</div>
<script src="blackj.js"></script>
</body>
</html>
将javascript代码包装在
load
事件处理程序中
window.addEventListener("load", loaded, false);
function loaded() {
alert('xupasaoquadrado');
var baralho = ['Ao', '2o', '3o', '4o', '5o', '6o', '7o', '8o', '9o', '10o', 'Vo', 'Do', 'Ko', 'Ae', '2e', '3e', '4e', '5e', '6e', '7e', '8e', '9e', '10e', 'Ve', 'De', 'Ke', 'Ap', '2p', '3p', '4p', '5p', '6p', '7p', '8p', '9p', '10p', 'Vp', 'Dp', 'Kp', 'Ac', '2c', '3c', '4c', '5c', '6c', '7c', '8c', '9c', '10c', 'Vc', 'Dc', 'Kc'];
var botaoAposta = document.getElementById('botaoAposta');
var valorAposta;
botaoAposta.onclick = function() {
alert('xupas');
valorAposta = document.getElementById('valorAposta').value;
alert('xupas1');
if (valorAposta = document.getElementById('valorAposta').value != null) {
} else {
alert('iserir valor de aposta (números inteiros)');
}
}
}
这样,当页面打开时,它将在页面加载时执行代码(意味着DOM已经创建,所有元素都在页面上)
然后,当javascript代码运行时,它将遇到所有
document.getElementById()
语句,并在DOM中找到相应的元素。将代码包含在事件中,当初始HTML文档完全加载和解析后,将触发此事件:
document.addEventListener("DOMContentLoaded", function(event) {
alert('xupasaoquadrado');
var baralho = ['Ao','2o','3o','4o','5o','6o','7o','8o','9o','10o','Vo','Do','Ko', 'Ae','2e','3e','4e','5e','6e','7e','8e','9e','10e','Ve','De','Ke','Ap','2p','3p','4p','5p','6p','7p','8p','9p','10p','Vp','Dp','Kp', 'Ac','2c','3c','4c','5c','6c','7c','8c','9c','10c','Vc','Dc','Kc'];
var botaoAposta = document.getElementById('botaoAposta');
var valorAposta;
var botaoAposta.onclick = function() {
alert('xupas');
valorAposta = document.getElementById('valorAposta').value;
alert('xupas1');
if(valorAposta = document.getElementById('valorAposta').value != null){
}
else{
alert('iserir valor de aposta (números inteiros)');
}
}
});
在“我看到了错误”中检查代码,改为使用onclick绑定事件使用addEventListener在对象准备就绪时向事件添加处理程序
alert('xupasaoquadrado');
var baralho = ['Ao','2o','3o','4o','5o','6o','7o','8o','9o','10o','Vo','Do','Ko', 'Ae','2e','3e','4e','5e','6e','7e','8e','9e','10e','Ve','De','Ke','Ap','2p','3p','4p','5p','6p','7p','8p','9p','10p','Vp','Dp','Kp', 'Ac','2c','3c','4c','5c','6c','7c','8c','9c','10c','Vc','Dc','Kc'];
var botaoAposta = document.getElementById('botaoAposta');
var valorAposta;
botaoAposta.addEventListener("click",function(e){
alert('xupas');
valorAposta = document.getElementById('valorAposta').value;
alert('xupas1');
if(valorAposta = document.getElementById('valorAposta').value != null){
}
else{
alert('iserir valor de aposta (números inteiros)');
}
},false);
那么第一行的警报没有出现?但是浏览器的开发控制台中没有错误?您的代码没有包装在
文档中。加载-事件。因此,代码是在页面打开时编译的,而不是在文档加载完成时编译的。因此,您使用的元素的id尚未创建,因此代码将无法工作。加载页面时是否包含google chrome控制台结果,可能存在错误,可能是由于.onclick未定义,因为元素未准备就绪yet@Jorrex他的
标签在身体的末端,因此,所有的元素都已加载。您的代码没有问题,至少这里发布的部分工作正常(在Firefox本地试用)。所以要么有更多的代码,要么有其他东西(与网络相关的东西)正在破坏它,即使你说调试器正在“遇到”它。事实上,并没有额外的参数丢失,以使代码运行,而不仅仅是加载
正在加载并运行所提到的脚本。
标记位于正文的末尾,因此所有HTML都已被解析和加载。正如在HTML文件末尾包含脚本之前的类似文章中所提到的,因此它非常能够访问其中定义的所有元素。坚持使用窗口的load
事件甚至比坚持使用文档的domcontentload
事件更糟糕,因为前者在后者之后很久才会发出。
alert('xupasaoquadrado');
var baralho = ['Ao','2o','3o','4o','5o','6o','7o','8o','9o','10o','Vo','Do','Ko', 'Ae','2e','3e','4e','5e','6e','7e','8e','9e','10e','Ve','De','Ke','Ap','2p','3p','4p','5p','6p','7p','8p','9p','10p','Vp','Dp','Kp', 'Ac','2c','3c','4c','5c','6c','7c','8c','9c','10c','Vc','Dc','Kc'];
var botaoAposta = document.getElementById('botaoAposta');
var valorAposta;
botaoAposta.addEventListener("click",function(e){
alert('xupas');
valorAposta = document.getElementById('valorAposta').value;
alert('xupas1');
if(valorAposta = document.getElementById('valorAposta').value != null){
}
else{
alert('iserir valor de aposta (números inteiros)');
}
},false);