Javascript 如何重定向到我的目录中的文件名?

Javascript 如何重定向到我的目录中的文件名?,javascript,if-statement,Javascript,If Statement,我正在尝试做一个简单的javascript游戏,这是在上一个游戏完成后加载下一个级别的代码。我希望它检查什么是当前的水平,并根据这跳到下一个水平。它不能正常工作。实际上,前两个if语句似乎是有效的,但我不能对最后一个说同样的话:它什么也不做 document.getElementById('next').addEventListener('mouseup',function(){ if(location.pathname==“/level0.html”){ location.assign(“/

我正在尝试做一个简单的javascript游戏,这是在上一个游戏完成后加载下一个级别的代码。我希望它检查什么是当前的水平,并根据这跳到下一个水平。它不能正常工作。实际上,前两个if语句似乎是有效的,但我不能对最后一个说同样的话:它什么也不做

document.getElementById('next').addEventListener('mouseup',function(){
if(location.pathname==“/level0.html”){
location.assign(“/level1.html”)
}
if(location.pathname==“/level1.html”){
location.assign(“/level2.html”)
}
如果(location.pathname==“/level2.html”){
location.assign(“/level3.html”)
}        
})
/*这里有一些css*/

NEXT LEVEL
据我所知,没有什么特别的理由认为代码不应该工作,但您可以通过这样做来显著简化它。它将减少对查询页面URL的依赖,这可能是一个故障点:

var level=0//或任何页面级别
document.getElementById('next')。addEventListener('mouseup',function(){
水平仪++
location.assign(级别>3?'/':`/level${level}`)
})

我将使用类和数据属性的组合,而不是在代码库中硬编码路径。这允许您修改一个而不改变其他,或者在中间添加一个。在这里,我显示了可能在不同页面上的按钮,但为了便于说明,我禁用了不在“页面”上的按钮,而不是导航到该页面。脚本在每一页上都是一样的,因为我已经把它注释掉了。理论上,这可能是一个链接,而不是一个按钮

请参见第二个示例,了解单个页面和简化脚本(如果使用ID,可能会更简单),但为了保持一致,我使用了相同的代码

var nextButtons=document.getElementsByClassName('fun-button');
var showaction=document.getElementById('showaction');
showaction.textContent=“从这里开始”;
功能下一步(事件){
让我=event.target;
//这是一条重要的路线:
//document.location.href=“/myfolder/”+event.target.dataset.nextone+”.html”
//只是为了展示它们是如何使用的
me.disabled=true;
me.classList.remove(“目标按钮”);
log(event.target.dataset.nextone);
让newBtn=document.getElementsByClassName(event.target.dataset.newtarget)[0];
newBtn.disabled=false;
newBtn.classList.add(“目标按钮”);
showaction.textContent=“我会调用:“+event.target.dataset.nextone+”.html”;
}
var testBtns=Array.prototype.filter.call(下一个按钮,函数(testElement)){
返回testElement.addEventListener('单击',下一步);
});
#我的按钮{
边缘顶部:1米;
显示器:flex;
证明内容:周围的空间;
}
.趣味按钮{
背景色:#00dddd;
边框:实心2px#00ff00;
填充:.5em;
}
.趣味按钮:禁用{
背景色:#dddddd;
}
.fun-button.targeted-button{
背景色:#DD00;
}
所有这些都将在不同的页面上:
上一级
在第二层
进入第三层
上到第四层
背上

清空我
如果您只是设置全局变量,如
var level=1
,然后使用
location.assign('level'+level+'.html')加载它;
您应该检查它是否“包含”与===(这是非常严格的检查)相反,您可能只想检查模式。有时它可能有斜杠,有时没有。@bmeers5这是一回事,不是吗?我知道使用变量可能是一个更好的选择,但应该是相同的guess@user1735921我不能使用“包含”因为location.pathname.contains在这种情况下不是一个函数。顺便说一句,我尝试过,但在这个命令console.log(document.currentScript.src.toString())中没有任何功能;解决了我的问题!我爱你啊哈,非常感谢。如果我用你的时间犯了这样一个愚蠢的错误,我很抱歉:我刚刚忘记在上一个html文件中加载script.js。我尝试了你的代码,我会感谢你的时间,但这段代码仍然“有效”作为我的…因此它不适用于level3.htmlIf如果打开开发工具,当您单击转到level3.htmlIf时,是否在控制台中看到任何错误?如果没有,页面上的另一个元素是否可能覆盖了您的按钮并阻止它被正确单击?在位置上方放置一个控制台语句。如果它正在启动。我试着查看控制台,当我单击按钮时,我没有看到任何错误。我还可以肯定地说,按钮被单击了,因为我有一个悬停效果,它被正确触发。我仍然会在那里放一个控制台语句,看看当你单击时它是否启动。无论哪种方式,你都会更好地了解问题所在。