JavaScript window.location.assign()不起作用

时间:2017-03-31 13:40:36

标签: javascript html html5

我正在开发基于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页面

我不能为我的生活弄清楚为什么它不会重定向到你失去的页面。

2 个答案:

答案 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。