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

How to Detect if On Homepage to hide a button

本文关键字:主页 隐藏 按钮 是否 何检测 检测      更新时间:2023-09-26

如果我有一个静态的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")需要注意的是,这个网站只有 1 层深度链接(所有 HTML 页面都在一个目录中),但这是在 Javascript 中比较字符串的正确方法吗?

我可以建议绝对不需要javascriptr来实现这一点。有很多方法可以只用 css 来做到这一点。特别是如果你在一个静态的html页面上。最简单的方法是在你的身体标签上添加一个id,以表明你在hompegae上。然后添加一些css以使主页按钮在此页面上不可见。像这样

.HTML:

<body id="homepage">
...
   <li id='home-button'>
      <a href='/index.htm'>Home</a>
   </li>
...

.CSS:

#homepage #home-button {
  display: none;
}

这样,禁用js的visistors可以获得与普通访问者相同的体验...

这应该没问题。另外,在html中的哪个点,您是否进行此检查很重要(对于url包含"index.html"),通常您可以创建一个函数doAfterLoad()并调用doAfterLoad()可以检查url子字符串,然后相应地显示/隐藏主页链接。您也可以使用 HTML Body onLoad 事件。

PS:在 js 中,即使它是一个有效的 var 名称,你也不需要在 var 后面跟 $ 前缀:$turnonhomelink==真