• ベストアンサー

順番号をつけたhtmlファイルのページ推移

順番号をつけたhtmlファイルへページ推移させたいんですが、現在のファイルの番号を取得して次ページ(++)と前ページ(--)へ数値を代入する方法がわかりません。また、最小値と最大数に達したときにindex.htmlに移動するようにしたいです。 未熟な上、書いてみましたが、動きやしません… [次ページへ] <SCRIPT LANGUAGE="JavaScript"> function.next;{ document.links[sample(i).html]; for (i=0; i<最大値; i++); } </SCRIPT> <a href="javascript:next">次へ</a> [前ページへ] <SCRIPT LANGUAGE="JavaScript"> function.next;{ document.links[sample(i).html]; for (i=0; i>0; i--); } <a href="javascript:back">戻る</a> </SCRIPT> 「もし、最大値と最小値に達したとき、index.htmlに移動する」 はわかりませんでした。 ご教授いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

現在の、ファイル名は、 location.pathnameで 取り出せます。 ファイル名から数字の部分を取り出すには、 例えば、ファイル名が sample01.html とかだったら parseInt("sample1.html".substr(6)) 見たいな感じで数字部分を取り出せます。 次のページの処理では if(数値<最大値){ 数値=数値+1; location.href="sample"+数値+".html"; } else { location.href="index.html"; } みたいな感じでやればいいと思います。 前ページも同様

punats
質問者

お礼

ご回答ありがとうございます。 ご回答を頂いて、早速やってみたのですが、 やはりどうにもわかりません。 もうちょっと試行錯誤してみます。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

>私の持っている本には「substr(n,m);」と例題にありn番目からm個の文字を抜き出す:となっています その通りですが、m(取り出す長さ)が省略された場合、 n番目から終端(文字列の最後まで)を取り出すということになっているので、サンプルでは省略しています。 その意味で substr(7)とsubstr(7,1) は、同じではありません。 後者は一文字を取り出します。 前者は、残り一文字の場合は同じになりますが、もっと長い文字列の場合同じにはなりません。

punats
質問者

お礼

ご回答ありがとうございます。 なるほど…最後まで取り出すことになると省略できるのですね。 浅はかでしたね…奥が深いですね。

すると、全ての回答が全文表示されます。
  • m035
  • ベストアンサー率44% (38/86)
回答No.4

>「もし、最大値と最小値に達したとき、index.htmlに移動する」 maxが最大連番で取得した現在のページ番号はnだとします。 var max=10; //ここまでにnは+-(前進後退)されたとします。 if(n<0||n>max){ location.href="index.html"; }

punats
質問者

お礼

ご回答ありがとうございます。 >  n<0||n>max 「nが0より小さいとき/nがmaxより大きいとき」2つの条件のうちどちらかを満たしたとき、index.htmlに移動する。 ははぁ~ん、ふむふむ、文章の通りですね。 「||」は便利ですね。これ使わせていただきます。

すると、全ての回答が全文表示されます。
回答No.3

まず、BLUEPIXYさんが言われているようにlocation.pathnameからファイル名を取得、ファイル名の中から対象の数字部分を抜き出す部分をがんばりましょう。 サイト上であればパスの区切り文字は基本的に"/"のはずなので、split()関数を使うと、案外簡単にファイル名自体は取って来れます。 そこからは「何文字目からが数字で、末尾何文字は数字以外の拡張子部分で」というのを考えてsubstringなどで数字部分を抜き出します。 後はボタンやリンクのクリック時に「↑で抜き出した数字が最大/最小か?」をif文で・・・というようになります。 基本的にはBLUEPIXYさんが言われているやり方を文章で説明しただけですけどね。 あえて今回はヒントになる関数のみにしておきました。 出来ればここからは、ネット検索とBLUEPIXYさんの言われているようにalert()で内容を見てがんばって欲しいですが、どうしてもサンプル的なものが必要であればまた言ってください。

punats
質問者

お礼

アドバイスありがとうございます。 なんとかalert()でがんばってみます。 ここでくじけたらいつまでたってもおなじなので。 ただ、やり方に絶対の方法がないだけにわかりにくいところがありますねぇ…

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>試行錯誤 とりあえず、 alertしまくる var file=location.pathname; alert(file); alert(file.substr(7)); var num=parseInt(file.substr(7)); alert(num); var nextfile="sample"+num+".html"; alert(nextfile); がんばれ^^/~

punats
質問者

お礼

ご回答ありがとうございます。 alert();をはさんで確認するんですね!なるほど!度々すいません。 >var num=parseInt(file.substr(7));の「7」は7番目からという意味ですよね? 私の持っている本には「substr(n,m);」と例題にありn番目からm個の文字を抜き出す:となっていますが、上記はsubstr(7))とsubstr(7,1))は同じ結果を示すのですが、解釈として同じと認識してもいいのですか? 頂いたアドバイスで近いとこまではきてました。

すると、全ての回答が全文表示されます。