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層のディープリンク(1つのディレクトリ内のすべてのHTMLページ)しかないことに注意してください。ただし、これはJavascriptで文字列を比較する適切な方法ですか?

4

2 に答える 2

5

これを達成するためにjavascriptrは絶対に必要ないことをお勧めします。cssだけでこれを行う方法はたくさんあります。特に静的なhtmlページを表示している場合。簡単な方法は、ボディタグにIDを追加して、ホンペガエにいることを示すことです。次に、いくつかのcssを追加して、このページにいるときにホームボタンを非表示にします。このようなSomethiong:

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のどの時点で、このチェックが重要になるか(URLに「index.html」が含まれるようにするため)、通常は関数doAfterLoad()を作成し、URLをチェックできるdoAfterLoad()を呼び出すことができます。サブストリングを入力し、それに応じてホームページリンクを表示/非表示にします。htmlbodyonLoadイベントも使用できます。

ps:有効な変数名であっても、jsの変数の前に$プレフィックスを付ける必要はありません:$ turnonhomelink == true

于 2012-08-07T20:36:51.490 に答える