<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body { background-color:#cce; }
#menu {
list-style-type: none;
margin: 0;
padding: 0;
}
#menu li {
display: inline;
border: 1px #888 solid;
padding: 0;
margin:0;
}
#menu li a {
color:#088;
}
#menu li a:hover {
color:#ff0;
background-color:#f0f;
}
-->
</style>
</head>
<body>
<ol id="menu">
<li><a href="#menu1">menu1</a></li>
<li><a href="#menu2">menu2</a></li>
<li><a href="#menu3">menu3</a></li>
<li><a href="#menu4">menu4</a></li>
<li><a href="#menu5">menu5</a></li>
</ol>
<div id="menu1">page.1</div>
<div id="menu2">page.2</div>
<div id="menu3">page.3</div>
<div id="menu4">page.4</div>
<div id="menu5">page.5</div>
<script type="text/javascript">
<!--
var TabMenu = { };
TabMenu.select_css = 'background-color:#600';
TabMenu.add = (function () {
return function (id) {
var emt = document.getElementById(id);
if (undefined === this.List) {
this.List = [ ];
this.Initializer();
}
if (emt) {
this.List.push(emt);
this.View(emt);
}
};
})();
TabMenu.View = (function (getCookie, setCookie) {
return function (parent, target) {
var cnt;
var obj;
var tgt;
var list = parent.getElementsByTagName('A');
var id;
if (undefined === target) {
target = parseInt( getCookie(parent.id) ) || 0;
}
if (typeof target == 'number') target = list[target];
for (cnt = 0; obj = list[cnt]; cnt++) {
if (id = ('' + obj.getAttribute('href')).match(/^#(.*)/)[1]) {
if (tgt = document.getElementById(id)) {
if (obj === target) {
tgt.style.display = 'block';
obj.parentNode.style.cssText = this.select_css;
setCookie( parent.id, cnt, 100);
} else {
tgt.style.display = 'none';
obj.parentNode.style.cssText = '';
}
}
}
}
};
})(
function (name) {
name = encodeURIComponent(name).replace(/([.*()])/g, '\\$1');
var value = document.cookie.match(RegExp(name + '\\s*=\\s*(.*?)(?:[\\s;,]|$)'));
return value ? decodeURIComponent(value[1]) : '';
},
function (name, value, day, path, domain) {
return document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) +
'; ' + 'expires=' + new Date( (new Date) - 86400000 * -day ).toUTCString() +
'; ' + (path ? 'path=' + encodeURI(path) + '; ': '') +
(domain ? 'domain=' + encodeURI (domain) + '; ': '');
}
);
TabMenu.Listener = (function (hasParent) {
return function (evt) {
var emt = evt. target ;
var cnt = 0;
var tgt;
while (tgt = TabMenu.List[cnt++]) {
hasParent(emt, tgt) && TabMenu.View(tgt, emt);
}
};
})(
function (n, obj) {
n = n.parentNode;
return n ? (n === obj) ? true: arguments.callee(n, obj): false;
}
);
TabMenu.Finalizer = (function () {
return function ( evt ) {
document. removeEventListener(
'click', TabMenu.Listener, false);
removeEventListener(
'unload', TabMenu.Finalizer, false);
};
})();
TabMenu.Initializer = (function () {
return function () {
document. addEventListener (
'click', TabMenu.Listener, false);
addEventListener (
'unload', TabMenu.Finalizer, false);
};
})();
TabMenu.add('menu');
</script>
</body>
</html>