PHP で現在のページを確認する方法がわかりませんが、それが理想的です。
ただし、JavaScript に依存したい場合は、過去にこの関数を使用して成功しました。
function highlightPage(id){
//make sure DOM methods are understood
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
if(!document.getElementById(id)) return false;
var nav = document.getElementById(id);
var links = nav.getElementsByTagName('a');
for (var i=0; i < links.length; i++){
var linkurl = links[i].getAttribute('href');
var currenturl = window.location.href;
//indexOf will return -1 on non-matches, so we're checking for a positive match
if (currenturl.indexOf(linkurl) != -1) {
links[i].className = "here";
var linktext = links[i].lastChild.nodeValue.toLowerCase();
document.body.setAttribute("id",linktext);
}
}
}
そして、ページの読み込み時に関数を読み込むには:
function addLoadEvent(func){
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function(){
oldonload();
func();
}
}
}
addLoadEvent(function(){
highlightPage('navigation');
});
これは、ナビゲーションの ID が「navigation」であることを前提としていますが、必要に応じて変更できます。この関数は、現在のナビゲーション項目に "here" のクラスを追加するだけです。
このスクリプトは、Jeremy Keith の「DOM Scripting」から来ています。