好的,我正在制作视频游戏,我希望玩家能够通过文本输入框选择游戏中的自定义文件。我能够让一切工作正常,但是当我点击“加载级别”按钮时,它会转到:
... / Custom Levels / undefined.html 我尝试了其他一些方法,但我唯一得到的是:
... /自定义级别/ [对象HTMLInputElement] .html
<div>
<p><input type="text" id="LVLNK" value="Level Name"></p>
<p><input type="button" id="MButton" value="Load Level" onclick="LDLVLNK()"></p>
</div>
<script>
var time = setInterval(10,gameLoop)
var LevelLink; /*put: "var LevelLink = document.getElementById("LVLNK");" to get other link example instead*/
function gameLoop()
{
LevelLink = document.getElementById("LVLNK").value;
}
function LDLVLNK()
{
window.location = "../Custom Levels/" + LevelLink + ".html";
}
我目前正在尝试访问的文件名为&#34; CLevel1&#34;
所以我将CLevel1放在输入框中。 gameLoop会将名称设置为LevelLink变量,然后将该变量添加到位于由按钮激活的LDLVLNK函数内部的window.location函数中的完整链接。
答案 0 :(得分:1)
你向setInterval()
的论点倒退,应该是:
setInterval(gameLoop, 10);
但是LevelLink
全局变量没有理由。您只需在LDLVLNK()
:
function LDLVLNK() {
var LevelLink = document.getElementById("LVLNK").value;
if (LevelLink) {
window.location = "../Custom Levels/" + LevelLink + ".html";
} else {
alert("Nowhere to go to");
}
}
答案 1 :(得分:0)
我猜您可以尝试以下方法:
function LDLVLNK(){
location.href = "../Custom Levels/" + LevelLink + ".html";
//here window is optional, location is a globally accessible object
}
顺便说一句:
你错了setInterval
,你应该使用setInterval(gameLoop, 10);
(即使浏览器10可能不是很好/可维护,如果它太多,请尝试100并通过触摸减少数量)