• 締切済み

ボタンのリンク先の指定

例えばtest01.html~test99.html と 連番からなるホームページを作成したとします。   現在test50.htmlにいるのならnextのボタンで test51.htmlを表示します。 現在いるページの数で前後のページを表示させたいと思っています。 そうすればページ毎の面倒なリンクを省けるので。 JAVAScriptでこれを実行したい場合、 どういうプログラミングになるのでしょうか。 

みんなの回答

回答No.4

すまーとといえるかどうか・・・ くぎりかたがざつだけど・・・ さいしょと、さいごだけは、てがき(?)だよね。 function go (n) { location.href=location.href.replace(/^(.*?)(\d+)(\.html)$/,function(_,a,b,c){return a+(+b+n)+c}) }

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

これでどう? <script> function go(num1){ var path=location.pathname; var fname=path.substring(path.lastIndexOf ('/',path.length) +1,path.length); var reg=new RegExp("\\d{2}(?=\.)"); var num2=(parseInt("1"+fname.match(reg))+num1).toString().substr(-2,2); location.href=fname.replace(reg,num2); } </script> <input type="button" value="previous" onclick="go(-1)"> <input type="button" value="next" onclick="go(1)">

flyingbee
質問者

お礼

ご回答有り難うございます。 随分とスマートにコーディングできるものですね。 取り敢えず後ほどテストさせて頂きますね。 まずはお礼を申し上げます。

  • nicorus
  • ベストアンサー率70% (12/17)
回答No.2

ボタンの有効/無効処理を追加しました。 <script> var g_strCurrentURL = window.location.href; var g_strThisPageNo = g_strCurrentURL.match(/(\d\d)\.html$/)[1]; function window.onload(){ if( parseInt(g_strThisPageNo,10) <= 1) document.getElementById("btnPrev").disabled=true; if( parseInt(g_strThisPageNo,10) >= 99) document.getElementById("btnNext").disabled=true; } function movePage( nAmount ){ var strThisPageNo = g_strCurrentURL.match(/(\d\d)\.html$/)[1]; var strMovePageNo = ("00"+String(parseInt(g_strThisPageNo,10)+nAmount)).slice(-2); window.location.href = g_strCurrentURL.replace(g_strCurrentURL.split("/").reverse()[0],"test"+strMovePageNo+".html"); } </script> <button ID="btnPrev" onclick="movePage(-1)">前</button> <button ID="btnNext" onclick="movePage(1)">次</button>

flyingbee
質問者

お礼

追加処理まで考えていただき恐縮です。 当方としては多分できるだろうくらいにしか 考えていませんでした。   色々と方法があるようですね。 こちらをサンプルに色々と研究してみたいと思います。 追加機能まで考えて頂き感謝いたします。 取り敢えずはお礼を先に述べます。

  • nicorus
  • ベストアンサー率70% (12/17)
回答No.1

これでどうでしょうか? <script> var movePage = function( nAmount ){ var strCurrentURL = window.location.href; var strThisPageNo = strCurrentURL.match(/(\d\d)\.html$/)[1]; var strMovePageNo = ("00"+String(parseInt(strThisPageNo,10)+nAmount)).slice(-2); window.location.href = strCurrentURL.replace(strCurrentURL.split("/").reverse()[0],"test"+strMovePageNo+".html"); } </script> <button onclick="movePage(-1)">前</button> <button onclick="movePage(1)">次</button>

関連するQ&A