如果我有一个静态HTML主页,有没有办法嵌入一些Javascript来查看我是否在主页上?我想要做的是如果用户不在主页上,在导航栏上显示“主页”按钮。所以,一旦我知道他是否在主页上,我就可以使用if-else语句。不熟悉如何在Javascript中执行此操作。我会在PHP中执行此操作,但由于项目的限制,我不允许使用PHP。这个网站是纯HTML页面。
我需要Javascript来检测页面的原因是因为所有页面(包括主页)都是相同的模板(同样,不是我的决定)。如果不是这样,我可以为每个页面创建一个模板,但主页。所以这让我遇到了问题。
我目前的想法是使用这样的东西:
<script type="text/javascript">
var sPath = window.location.pathname;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
if(sPage != "index.html"){
$turnonhomelink=true;
}
else{
$turnonhomelink=false;
}
</script>
然后是链接:
<script type="text/javascript">
if ($turnonhomelink==true){
echo '<li><a href="#">Home</a></li>';
}
else{
//echo nada
}
</script>
除了正常的“如果Javascript没有打开就行不通”,有什么我遗漏的吗?
我最关心的是:if(sPage != "index.html")
需要注意的是,这个站点只有一层深层链接(一个目录中的所有HTML页面),但这是在Javascript中比较字符串的正确方法吗?
答案 0 :(得分:5)
我可以建议绝对不需要javascriptr来实现这一目标。只有css,有很多方法可以做到这一点。特别是如果你在一个静态的html页面上。简单的方法是在你的身体标签上添加一个id来表明你在hompegae上。然后在此页面上添加一些css以使主页按钮不可见。 Somethiong喜欢这样:
HTML:
<body id="homepage">
...
<li id='home-button'>
<a href='/index.htm'>Home</a>
</li>
...
CSS:
#homepage #home-button {
display: none;
}
这样,js禁用的粘合剂可以获得与普通游客相同的体验......
答案 1 :(得分:0)
这应该没问题。另外在html中的哪一点,你会进行这项检查很重要(对于包含“index.html”的url),通常你可以创建一个函数doAfterLoad()并调用doAfterLoad()来检查url substring然后相应地显示/隐藏主页链接。你也可以使用html body onLoad事件。
ps:即使它是一个有效的var名称,你也不需要在$ js中跟随$前缀: $ turnonhomelink == true