分享

javascript – 未捕获TypeError:无法设置null的属性’src’…选择你自己的冒险

 印度阿三17 2019-08-30

我只是在学习javascript而且我遇到了一些麻烦.我正在选择你自己的冒险游戏,你会经历一个迷宫.有图片显示正在发生的事情.您做出每个决定后,图片都会发生变化.在向左或向右键入后更改图片时出现问题.我一直收到Uncaught TypeError:每次尝试加载图片时都无法设置属性’src’的空错误消息. Java表示问题出现在第66行

这是我的代码:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Brian.Bosco-Hazey Maze Adventure</title>
<script type="application/javascript">
var flag;
var output;
var name;
var n1 = "what is your name?"
var s1 = "You wake up in a spooky maze. You must find your way out or this place will become your grave. You can go <b>Left</b> or <b>Right</b>?";
var s2 = "You come across a wizard at a fork in the maze. He gives you a magic sword to defend yourself with. You can either go <b>Left</b> or <b>Right</b>?";
var e1 = "You encounter a monster. you attempt to escape, but it pounces on you and tears off your flesh. You have died. GAME OVER. Type restart to try again";
var e2 = "You come across a dead end, looks like you have to go back the way you came. When you turn around you step on a trap on the floor and the whole tunnel collapses on you. You did not survive. Please type restart to try again."
var e3 = "While walking down this long hallway, you come across a giant monster guarding the exit door. You take the sword the wizard gave you and you slay the beast. You go through the door and exit the maze. Congradulations you have beaten the game! Type restart to play again. ";
var done = "What are you doing? You are still dead. Type restart to start again";
var myImage;
var newImage;





function init(){
	output = document.getElementById('output');
	output.innerHTML="";
	flag="n1";
	texter(n1);
	name = "";
	document.body.style.background="white";
}
function texter(newText){
	console.log(newText " from texter");
	var oldText = document.getElementById('output').innerHTML;
	document.getElementById('output').innerHTML= newText;// " " oldText;
}
function Imger(newImage){
	document.getElementById('img1').src = newImage;
	document.getElementById('img2').src = newImage;

}
function game(){
	var input = document.getElementById('input').value;
	console.log("the input is " input);
	if(input=="restart"){
		init();
	}else{
		if(flag=="n1"){
			name = input;
			flag="s1";
			texter("hello " name " " s1);
			document.getElementById('img1').src = "hooded man.jpg";
			output.style.color="blue";
		}else if(flag=="s1"){
			//ask c1
			if(input=="right"){
				flag="s2";
				texter(s2);

				
					
				document.body.style.background="green";
			}else if(input=="left"){
				texter(e1);
				flag ="e1";
				document.getElementById('img2').src = "last scene.jpg";
			
			}else{
				texter("error");
			}
		}else if(flag=="s2"){
			//ask c2
			if(input=="right"){
				flag="e2";
				texter(e2);
				
				document.body.style.background="red";
			}else if(input=="left"){
				texter(e3);
				flag ="e3";
				document.body.style.background="yellow";
			}else{
				texter("error");
			}
		}else if(flag=="e1"){
			//e1
			texter(done);
		}else if(flag=="e2"){
			//e2
			texter(done);
		}else if(flag=="e3"){
			//e3
			texter(done);
		}
	}
}
</script>
</head>
<body onLoad="init()">
<img src="start.jpg" id="img1" width="500" height="500">


<p id="output">this is the start text</p>
<input type="text" id="input">
<input type="button" value="submit" onClick="game()" ">
</body>
</html>

解决方法:

document.getElementById('img2').src = newImage;

HTML中没有id =“img2”,因此document.getElementById(‘img2’)== null.

你可以在img1下添加一个:

<img src="start.jpg" id="img1" width="500" height="500">
<img src="start.jpg" id="img2" width="500" height="500">

或者您可以删除JS行:

document.getElementById('img2').src = newImage;

并且:

document.getElementById('img2').src = "last scene.jpg";

或者将其更改为:

document.getElementById('img1').src = "last scene.jpg";

来源:https://www./content-1-425401.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多