2

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

4

2 回答 2

5

我可以建议绝对不需要 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 的访问者可以获得与普通访问者相同的体验......

于 2012-08-07T20:37:24.757 回答
0

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

ps:你不需要在 js 中的 var 后面加上 $ 前缀,即使它是一个有效的 var 名称:$turnonhomelink==true

于 2012-08-07T20:36:51.490 回答