我有一个 body onload 调用 javascript 中的函数。我尝试了很多方法,但控制台只是打印到错误日志:未捕获的引用错误:未定义启动。我认为这可能是一个故障,如果它对您有用,请通知我。我的代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Monster Invasion</title>
<script type="javascript">
var hur;
var monsters = 10;
var objective = false;
var health = 100;
var damage = 30;
var sheild = false;
var ea = 1;
function start() {
setTimeout(hurt,4000)
}
function hurt() {
var newhelth = health - damage;
health = newhelth;
document.getElementById("healtw").innerHTML = health;
start();
}
function kill() {
if(monsters > 0) {
monsters--;
document.getElementById("monster1").src="dead.jpg"
setTimeout(next,2000)
}else {
objective = true;
document.location="endoflevel.html";
}
}
function next() {
document.getElementById("monster1").src="monster.jpg"
}
}
</script>
</head>
<body onload="start()">
<p id="healtw"></p>
<embed src="guide_first_level.mp3" type="audio/mp3" hidden="true" autostart="true">
<a id="st" onclick="kill()"><img id="monster1" src="monster.jpg"></a>
<p id="ada"></p>
<a href="sheild.html">Activate sheild</a>
</body>
</html>
您的脚本类型错误。
尝试这样
<script type="text/javascript">
</script>
但是,您不需要提及脚本类型。只需使用简单的脚本标签即可。
像这样
<script>
</script>
还要补充一点,在脚本标签末尾之前,您给出了额外的
}
。
删除它即可
function next() {
document.getElementById("monster1").src="monster.jpg"
}
} // <-- just remove this bracket
</script>
您的代码有两个问题。
javascript 不是浏览器中脚本的有效类型。浏览器知道
text/javascript
,但不仅仅是 javascript,这就是为什么你的代码没有被执行。更改类型属性或完全删除它(因为 text/javascript
是默认值)。代码末尾有一个额外的括号}。删除它,您的代码将正常工作。
对于某些使用外部 js 文件的人来说,请检查您是否链接了您的文件:)...因为我有同样的错误,但当我查看我的代码时..我没有然后链接文件!
以防万一您也来这里寻找答案!
有3个错误:
type
}
onload()
作为 body
标签,您应该更好地使用 window.onload
,如下所示,以确保您的 start()
函数在文档准备好后运行: ...
<head>
<title>Monster Invasion</title>
<script type="text/javascript">
window.onload = function(){
// Put all your code here
// And at the end run start() function
start();
}
</script>
</head>
<body>
...
<!DOCTYPE html>
<html>
<head>
<title>Monster Invasion</title>
<script type="javascript">
var hur;
var monsters = 10;
var objective = false;
var health = 100;
var damage = 30;
var sheild = false;
var ea = 1;
function start() {
setTimeout(hurt,4000)
}
function hurt() {
var newhelth = health - damage;
health = newhelth;
document.getElementById("healtw").innerHTML = health;
start();
}
function kill() {
if(monsters > 0) {
monsters--;
document.getElementById("monster1").src="dead.jpg"
setTimeout(next,2000)
}else {
objective = true;
document.location="endoflevel.html";
}
}
function next() {
document.getElementById("monster1").src="monster.jpg"
}
}
</script>
</head>
<body onload="start()">
<p id="healtw"></p>
<embed src="guide_first_level.mp3" type="audio/mp3" hidden="true" autostart="true">
<a id="st" onclick="kill()"><img id="monster1" src="monster.jpg"></a>
<p id="ada"></p>
<a href="sheild.html">Activate sheild</a>
</body>
</html>