9月更新・前月(8月)の人気記事トップ10 09/02/2024
- ( 01 – ) 【Labs】position:absoluteとwidth:100%を指定すると横幅の設定がうまくいかない場合の対処方法について
- ( 07 ↑) 【Mac】macOSをHigh SierraからMontereyにアップグレード
- ( 03 – ) 【Mac】横画面で撮影した動画をYouTubeショート用にMacのiMovieで縦画面に編集する方法
- ( 10 ↑) 【iPhone / iPad】iPhoneのツイッターアプリでユーザー名をコピーする方法
- (圏外↑) 【Labs】CSSだけでドロップダウンメニュー
- ( 02 ↓) 【jQuery】入門2. jQueryをHTMLに組み込む
- ( 09 ↑) 【Mac】Safariでソースコードを見る方法
- ( 04 ↓) 【jQuery】入門7. jQueryで新しいWindowを開く
- ( 06 ↓) 【2024年5月】iPad画面解像度まとめ
- (圏外↑) 【GIMP】レイヤーをロック
【Labs】JavaScriptで親階層に戻るボタン
こんにちは(・∀・)
前回ご紹介しましたJavaScriptのhistory.back()ですが、このhistory.back()、もどるのは履歴に沿って行うので、当然その前に見ていたページに戻ることになります。
Contents
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だと親の親の親という感じになります。