【Labs】JavaScriptで親階層に戻るボタン - web design lab
にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村

【Labs】JavaScriptで親階層に戻るボタン


【Labs】JavaScriptで親階層に戻るボタン

こんにちは(・∀・)

前回ご紹介しましたJavaScriptのhistory.back()ですが、このhistory.back()、もどるのは履歴に沿って行うので、当然その前に見ていたページに戻ることになります。

Contents

  1. サンプル
  2. Result

JavaScriptで親階層にもどる

基本はそれでいいのですが、それでは困る場合も時にはあります。

例えば検索から飛んできたら検索結果のページに戻ってしまいますし、ブックマークから直接来たら、前に見ていたページの履歴を辿ってしまうことになります。

そのページに戻るボタンを付ける場合、大抵はその元のページに辿らせたいというのが趣旨なわけですから検索ページやその他のページに戻ってしまうのでは本来やりたいことに反してしまうということになり、history.back()では思ったような導線は引けないことになります。

ではどうすればいいのか、大概はそういうボタンを付けたいページには親ページがあることが多いと思います。で、階層も親であることが大概なので親ページに戻るボタンを作ればいいのではないかと考え、今回ご紹介しますサンプルを作ってみました。よろしければご活用ください。

サンプル
HTML
<a href="javascript: jump1()">demo1</a><a href="javascript:void(0)" onclick="jump2(); return false">demo2</a><button onclick="jump3()">demo3</button><button id="demo4">demo4</button>
ボタン①のJavaScript

<script>
var local = window.location;
var url = local.origin;
url + getDir(local);//現在ディレクトリ
var url2 = url + getDir(local,1);//親階層ディレクトリ
function getDir(place, n) {
return place.pathname.replace(new RegExp("(?:\\\/+[^\\\/]*){0," + ((n || 0) + 1) + "}$"), "/");
}
function jump1(){
location.href = url2;
}
</script>
ボタン②のJavaScript

<script>
var local = window.location;
var url = local.origin;
url + getDir(local);//現在ディレクトリ
var url2 = url + getDir(local,1);//親階層ディレクトリ
function getDir(place, n) {
return place.pathname.replace(new RegExp("(?:\\\/+[^\\\/]*){0," + ((n || 0) + 1) + "}$"), "/");
}
function jump2(){
location.href = url2;
}
</script>
ボタン③のJavaScript

<script>
var local = window.location;
var url = local.origin;
url + getDir(local);//現在ディレクトリ
var url2 = url + getDir(local,1);//親階層ディレクトリ
function getDir(place, n) {
return place.pathname.replace(new RegExp("(?:\\\/+[^\\\/]*){0," + ((n || 0) + 1) + "}$"), "/");
}
function jump3(){
location.href = url2;
}
</script>
ボタン④のJavaScript

<script>
var local = window.location;
var url = local.origin;
url + getDir(local);//現在ディレクトリ
var url2 = url + getDir(local,1);//親階層ディレクトリ
function getDir(place, n) {
return place.pathname.replace(new RegExp("(?:\\\/+[^\\\/]*){0," + ((n || 0) + 1) + "}$"), "/");
}
function jump4(){
location.href = url2;
}
document.getElementById('demo4').addEventListener('click',function(){
jump4();
},false);
</script>
Result

サンプルデモはこちら

getDir(local,1)、数値が1で親階層ディレクトリを取得します。数値が2だと親の親、3だと親の親の親という感じになります。

関連リンク

【Labs】JavaScriptで前のページに戻るボタン


にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村