• 締切済み

ボタンのリンク先の指定

例えば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

  • リンク先のJavaScriptを実行するリンク

    a.htmには以下のようなJavaScriptが記載されています。 <a href="javascript:c_click(1)">test</a> a.htmの中にはclick内の数字が1~50程度のリンクがあり、 数字に応じて異なるJavaScriptが実行されるページです。 b.htmからa.htmの上記の<a href="javascript:c_click(1)">test</a>が実行されるリンクを作ることは可能なのでしょうか。 たとえば、b.htmに以下のようなHTMLを記述することを想定しています。 <a href="a.htmのjavascript:c_click(1)">test</a>

  • ラジオボタンの未選択アラート/送信ボタンはリンク

    初めまして。 診断サイトのテスト画面を作成しております。 2問×4ページ+結果1ページの構成です。 1ページの中にラジオボタンを使用した4択問題×2問あり、 ページ下部に「次へ」のボタンを配置しています。 その「次へ」ボタンを押す際に、 未選択のラジオボタンがある場合にアラートがあがり、 (「次へ」ボタンは画像) かつ選択済みの場合は次のページへリンクする、 という仕様にしたいのですが、 何から設定したらよいのか迷走してしまっております… <input type="image">に対してリンクを設定してみようと色々やってみたのですがうまくいかず、 参考サイトから引用してきたりもしているのですが、 アラートだけ設定できてもリンクか画像表示ができない、、と あっちをたてればこちらがたたずという状況です。 ちなみにテスト画面なので、 ラジオボタンの数値等は無視してOKです。 【「次へ」ボタンを押すときにページ内未選択のものがある場合アラートがあがる/「次へ」ボタンを押すと次のページに移動する(リンク)】の状態が実現できれば、 書き方等に特にこだわりはありません。 また、javascriptは今回始めて触れているような状況で、 わかりにくかったら申し訳有りません。。 そもそもjavascriptが適切なのかも不明な状態です。 何卒よろしくお願い致します。

  • 自作ホームページ内のリンクで「戻る」ボタンで戻ってきた後、リンクの周りに表示される点線の枠を非表示にする方法

    分かりにくくて申し訳ありません. 現在ホームページを作成しております. 背景を透明にした画像を(ページA)でリンクのボタンとして使ったところ、移動先の(ページB)から「戻る」ボタンで(ページA)に戻ってくると、透明部分を取り囲むように点線の枠が表示されてしまい、非常に見た目が悪いです. 「戻」ってきたときに、この点線の枠を表示させない方法はありますでしょうか. 自分としては、(ページA)に飛ぶたびに、新しく読み込み直すようなjavascriptでもあればいいなと思って探しましたが、引っ掛けることができませんでした. すみませんが、宜しくお願いします.

  • リンク先の戻るについて

    こんにちは。 私はホームページビルダー9で作成しています。 画像や文字にリンク先を設定できるのですが、IEの「戻る」といった機能のように一つ前に入っていたページをリンク先にはできないのでしょうか? あるページに「back」ボタンをつけてTOPページに戻るようにしてあるのですが、別のページから入っても「back」ボタンを押すとTOPに飛ばされてしまいます。 質問の意味が分かりにくいかもしれませんがよろしくお願いします。

  • ボタンを使って、リンクする新しいウインドウページが開けません

    インターネットでホームページを開き、ボタンをクリックして別ウインドウを開こうとしても、ぜんぜん開けません。 例えば、 <INPUT type="button" value="スライドショー" onClick="OpenWin()"> のようにJAVAScriptを使って別ウインドウを開く場合にだけ、リンク先のページが開けないようです。インターネット上のいろいろのホームページで試しましたが、ボタンではリンク先を開くことはできませんでした。 今までは、問題なく開けていました。 一方、次のように <A href="http://homepage3.nifty.com/*.htm" target="_blank">冬景色</A> なタグを用いたところでは、リンク先ページが開けます。 ハッキリしませんが、あるホームページを開いた後からこの問題が出てきたみたいです。 自分のPCのOSはwin98です ブラウザはIE version6.0です。

  • リンクボタンを押すと?ブロックされます。

    教えて下さい。 ウイルスセキュリティZEROを使用しています。 ホームページを作成中でレイアウトを変更し、管理者リンクボタンを押したら「このページは情報漏洩もしくはウイルスに感染するおそれがあるため、ウイルスセキュリティがブロックしました。」と表示コメントが出されます。他のメニューボタンは正常にリンクされます。 (1)どうして、この管理者リンクボタンだけ出るのでしょうか? (2)どうすれば解除できるのでしょうか?

  • 【JavaScript】リンク先の折り畳みについて

    失礼します。 現在JavaScriptを使った折りたたみをサイトで使用しているのですが、 あるページからリンクで複数の折りたたみがある他のページに飛ぶ場合、リンク先のページにある特定の折りたたみだけを展開して表示させたいと考えています。 たとえばAからBというページに行く際に、BにあるC、D、Eの折りたたみのうちDのみを展開して表示させたいと言う感じです。 折りたたみをあらかじめ開いた状態にして表示させる方法自体は知っているのですが、リンク前のページから特定の折りたたみを選んで展開できるような仕組みはないかと探しています。 このようなことができるJavaScriptなどは有るでしょうか。 初心者のため意図の伝わりにくい質問かと思いますが、よろしくお願いします。

  • リンクボタンの貼り方(!?)

    最近、日記程度のプログを始めた者です。 プログ上に、あるHPのリンクボタン(バナー?)を貼りたいと思っています。 そのHPには 「●●ホームページへのリンクボタンです。ご使用の際は、●●のトップページhttp://www.■■.ne.jp/にリンクさせてください」 と書いてあり、左にそのリンクボタン(バナー!?)が載っていて、HTMLらしきものは掲載されてなかったと思います。 この場合、HTMLはどうやったら分かるのですか? (例えば、プロパティで分かるetc......) 初心者の私に教えて下さい。よろしくおねがいします。 (説明ヘタクソですみません。)

  • リンク先にパラメータを渡す方法

    よろしくお願いします。 現在、複数ページにリンクボタンがあり、これを押すと別ウィンドウでページAが開くようになっています。このリンクボタンからページAにパラメータを渡すことで、押すリンクボタンによってページA内の一部の文章が変わるようにするには、どうすればいいでしょうか? たとえば、「Bについて」というリンクボタンを押すと、ページAの一部のテキストも「Bについて」を表示されるようにしたいです。

    • ベストアンサー
    • CGI
  • 背景が透明なリンクボタンで、透明部分からリンクをさせない方法

    1.pngという背景透明なボタンを作り、そこからonmouseでリンクを含む3種類のjavascriptが走るようにしてありますが、それだけだと、画像の透明部分でもリンクとjavascriptが有効になってしまいます。 画像の透明部分にマウスがあるときは何も起こらず、透明でない部分にマウスが乗った時だけにリンクとjavascriptを実行させることはできませんか? よろしくお願いします。 実際使用しているソースは次の通りです。 -------------------------------------------------- <img border="0" alt="1" src="images/1.png" onclick="location.href='1.htm'" onmousedown="bdown()" onmouseup="bup()" onmouseover="bover(); PP(1)" onmouseout="bout(); PC(1)" id="bimage"/> -------------------------------------------------- ボタンの周囲にアクティブを示す点線の枠を表示させたくないため、リンクにはあえてホットスポットや通常のリンクを使用していません。 よろしくお願いします。

専門家に質問してみよう