我正在开发基于HTML的文本冒险游戏,根据用户点击的链接,可以选择下一个选项。我使用localStorage
来存储播放器的HP值,当HP值达到0时,游戏应该结束,并且网站应该更改为“游戏结束”。页。我有两个功能,它们都导航到不同的页面,具体取决于HP是高于还是低于某个数字
function alterHP(value) {
if (typeof (Storage) !== "undefined") {
var currentHP = parseInt(localStorage.HP);
localStorage.HP = currentHP + value;
hp=parseInt(localStorage.HP);
if (hp<=0) {
alert(hp); //For debugging, is showing a negative number, like it should be
/*If the error is syntactical, it is the next line*/
window.location.replace('youLose.html');
/*I used breakpoints and this line IS getting hit*/
/*It's just not going to the 'youLose' page*/
}
}
}
function getResult() {
var currentHP = parseInt(localStorage.HP);
if (currentHP > 4) {
window.location.assign('endAbove4.html');//These both work fine
} else {
window.location.assign('endBelow4.html');//These both work fine
}
}
<li><a
href="../S9/S9.html" onclick="alterHP(-6);"
class="ghost-button">Go on to the next scene</a></li>
我已经尝试了我能想到的youLose.html
路径名的每个变体,包括../youLose.html,../../youLose.html,.. \ youLose.html,以及甚至把完整的http://gw.mvctc.com/Class2018/smcintosh/Projects/StMarys(我实际打开页面并直接从URL栏复制到我的代码,所以我知道它是正确的地址。)我也尝试使用window.location.href =&#34; ../youLose.html" &#34; youLose.html&#34; &#39; ../ youLose.html&#39;并且&#39; youLose.html&#39; 和 window.location.replace()
最令人沮丧的是,如果你到了getResult();被调用,你有-26hp,它正常运行并重定向到endBelow4.html页面。我只需要在HP命中0时将其重定向到youLose页面
我不能为我的生活弄清楚为什么它不会重定向到你失去的页面。
答案 0 :(得分:2)
使用window.open(&#39; youLose.html&#39;,&#39; _self&#39;)
答案 1 :(得分:0)
放
window.close('game');
window.open('../youLose.html');
取代window.location.assign();然后在index.html页面中
<script>window.name("game");</script>
这将关闭游戏的标签,然后在替换原始标签的新标签页中打开youLose.html。