如何检测是否在主页上隐藏按钮

时间:2012-08-07 20:29:15

标签: javascript html css hyperlink

如果我有一个静态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中比较字符串的正确方法吗?

2 个答案:

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