• 締切済み

複数のページ履歴保持

ちょっとコーディングでつまづいています。 例えば、 1.html→a.html→target.html に通常のリンク(a href)で移動するとき、1.htmlからa.htmlのページ移動履歴は、 a.htmlはdocument.URLで、1.htmlはdocument.referrerで取得できますが、 a.htmlからtarget.htmlでは一番初めの1.htmlが取れません。 要は、最終的にtarget.htmlに来たときに、「1.html→a.html→target.html」を表示させたいのです。 これは可能でしょうか?ただし、クッキーを使わないという条件付で。 お判りになる方、お知恵を拝借願います。

みんなの回答

  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

> Cookieを使わず、かつ一種のグローバル変数でページ移動履歴を取りたいんです。 historyオブジェクトで履歴の数を取得することは可能なものの そこから履歴のURLやタイトルを取得する方法はないようですね。 結構需要があるようにも思えるのですが...。 結局、CGIにURL情報を渡してやってCGI側で管理(保存)してやるのが 一番スマートだと思います。

ikeike77
質問者

お礼

自力解決しました。 やはりCookieを使わずにページ履歴は取る方法がなかったようです。 ともあれ、ご回答ありがとうございました。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.1

JavaScriptが有効な環境限定で更に複数ページ前が存在することを 前提とするなら history.go(n); で前のページに戻ったり次のページに進めます。 history.go(-1); // 1 ページ戻る history.go(3); // 3ページ進む ページのURLだけ取得する方法は分かりません。 それはCGIなどを使用したりURLにクエリ渡したりして無理矢理 実現させるしかないでしょう。 (どちらにしても限界はある)

参考URL:
http://www.tohoho-web.com/js/history.htm
ikeike77
質問者

補足

確かにページ間を移動するだけなら、仰る方法でいいかと思いますが、 CGIは使わずにJavaスクリプトだけで実行したいんです。 Cookieを使わず、かつ一種のグローバル変数でページ移動履歴を取りたいんです。

関連するQ&A

  • 前のページのurlを取得するには?

    サイト内の十数ページで、関連記述の相互リンク <a href="xxx.html#yyy"> を 多用しています。ページの途中にジャンプするので、訪問者様が迷子にならないよう、 <body onLoad="parent.menuFrame.document.images[n].src='active.gif'" onUnload="parent.menuFrame.document.images[n].src='inactive.gif'"> で 居場所を表示しています。また、コンテンツの性格上、年輩の方が大きな文字で ご覧になることも予想され、表示領域が不足しないように、<a href="topPage.html" target="_top">フレーム解除の案内文</a> をtopPage.htmlに入れています。 一方、検索サイトから個別ページへの訪問者様を一度はフレーム版に誘導するため、 <a href="framesetPage.html" target="_top">トップページ</a> を各ページ上に 書いているのですが、虻蜂取らずで、トップページでフレーム解除を選択した方も、 各ページで「トップページ」をクリックする度にフレーム版に戻ってしまします。 要領を得ない説明で恐縮ですが、フレーム版でご覧いただくのを基本に、フレーム解除 を選んだ方には、ノンフレームのままtopPage.htmlと行き来していただきたいのです。 個別ページ上の<a href="topPage.html"> について、document.referrer が私の サイト外のときのみ target="_top" を指定しようと考えたのですが、referrerで urlを取得できないブラウザも多いとか・・・ アドバイスをお願いします。m(_ _)m

  • リンク元のファイル名を表示したい。document.referrerだとダメ。(ソース付き)

    よろしくお願いします。 index.html→saki.htmlのようにリンクしてある、ファイルが2つあります。 saki.htmlの中で、リンク元のindex.htmlの名称を、document.referrerで表示しようとしています。 しかし、うまく動作しません。 何が違うのでしょうか? ●index.html <html> <body> <a href="saki.html">AA</a> </body> </html> ●saki.html <html> <body> <script type="text/javascript"> <!-- document.write('<p>リンク元URL:' + document.referrer + '</p>'); // --> </script> </body> </html>

  • ページ履歴を残すには?

    こんにちは。 1→2→3→4→5にページ履歴を残すようなスクリプトを作りたいと思い、いろんなサイトを見ていると、下記のようなスクリプトを見つけたのですが、 <head内> historyDelimiter = " → "; function addHistory(item) { var h = []; if(document.cookie != "") h = document.cookie.split(historyDelimiter); h.push("<a href=\"" + document.URL + "\">" + item + "</a>"); document.cookie = h.join(historyDelimiter); } function showHistory() { document.write(document.cookie); } <body内> <script type="text/javascript"> <!-- addHistory("1ページ"); showHistory(); //--> </script> これでやると、Windows XP IE6でしか表現されませんでした。 しかも履歴がどんどんと伸びていきます。 例えば、1→2→3→4→5まで行き2をクリックすと1→2みたいには出来ないのでしょうか? それとMacのFirefoxでの使用も多々ありますので、こちらでも表現できないものでしょうか? cgiやphpなどのプログラムが使用できないためjavascriptでやろうと思っているのですが、javascriptではなく他になにかいい手段はないでしょうか? ちなみにhtmlのページ数も400ページほどありますが、手作業で1ページずつ打っていったほうが無難でしょうか。

  • javascript をhtmlページで使用する方法を教えてください。

    <form name=\"addr\"> リンク先-> <select name=\"list\" onChange=\"chg_url()\"> <option value=\"http://www.yahoo.co.jp\">yahoo1</option> <option value=\"http://www.yahoo.co.jp\">yahoo2</option> <option value=\"http://www.yahoo.co.jp\">yahoo3</option> </select> <a href=\"Dest\" target=_blank> リンク </a> </form> <script language=\"javascript\"> <!-- pos = 5555; for(num=0;num<document.links.length;num++) { if (document.links[num].href.indexOf(\"Dest\") != -1) { pos = num; num = 5000; } } function chg_url() { if (pos!=5555) { sel = document.addr.list.selectedIndex; document.links[pos].href = document.addr.list[sel].value; } } chg_url(); //--> </script> のスクリプトを同じページに何個も利用したいのですが、どうしたらうまくいきますか? 同じページにこのスクリプトを設置すると、全部同じページにリンクしてしまいます。java初心者なので、ぜひ教えてください。お願いします。 あと、「java」の質問回答の方に間違えて載せてしまいました。すみませんでした(>_<)

  • 指定のURLのタイトルを取得したいです

    親ウィンドウで <a href="​http://www.yahoo.co.jp/index.htm"​ target="new">Yahoo</a> 上記のリンクをクリックして開いたサブウィンドウ内のJavaScriptで 親ウィンドウのページタイトルを取得したいのですが、 どのようにしたら良いか教えて頂きたいです。 前回のさせていただいた質問のご回答で 親のURLは document.write(document.referrer) で取得できたのでこれを使ってそのURLにアクセスして タイトルを取得したいです。 頂いたご回答の中にサイト名を取得する方法も出ていたのですが、 事前に設定しておかなくてはならず、 どのURLのタイトルでも取りたいので、上記の方法を考えてみました。 ご教示頂けたら幸いです。よろしくお願い致します。

  • 一つのボタンでページ移動iframeとリンクを開く

    divで分けたpage1とpage2で page1には <ul > <li><a href="http://www.apple.com/jp/"target="iframe1" >Apple</a></li> <li><a href="http://www.microsoft.com/japan/‎" target="iframe1">Microsoft</a></li> </ul> page2には <iframe name="iframe1"></iframe> page1の外部リンクをクリックした時に page2移動して、iframe内にHPを開く用にしたいのですが、できますか!? targetでpage2にリンクを開くのはできましたが ページの移動ができません。 例えば、javascriptでpage1の外部リンクは全て移動するとか。。。 ど素人なので、違う簡単な方法があれば教えてください。

  • javascriptでのリンク表示

    サンプル図(http://lancerevolution.tuzikaze.com/sampletest.html) main.htmlと言うページとmenu.htmlと言うページがあります。 main.htmlと言うページには、  ⇒<a href="b.html?url=http://yahoo.co.jp" target="_blank">Yahoo Japanへ!</a>  ⇒<a href="b.html?url=http://www.google.co.jp/" target="_blank">Googleへ!</a>  ⇒<a href="b.html?url=http://jp.msn.com/" target="_blank">msnへ!</a> と言う3つのリンクがあります。 この3つリンクの内どのリンクでもいいのでクリックした時に、サンプル図の(3)の部分に、  ⇒<a href="http://yahoo.co.jp" target="new">Yahoo Japanへ!</a>  ⇒<a href="http://www.google.co.jp/" target="new">Googleへ!</a>  ⇒<a href="http://jp.msn.com/" target="new">msnへ!</a> として出力することはできますでしょうか? つまり、main.htmlにあるリンクをクリックした時に、main.htmlの「b.html?url=」を含んでいる、リンク全てを(3)の部分に出力("b.html?url="の部分を削除、targetを"new"にして出力)できますか?ってことです。 もし、できるようならどのようなjavascriptが必要でしょうか?どうぞ、よろしくお願いします。

  • JavaScriptを追加したい

    こんにちは。 こちら(ttp://f22.aaa.livedoor.jp/~sncspt/)のサイトさんの配布している「SNC THREADBBS 3」を使用したいのですが、その中に ***** <script type="text/javascript"> <!-- var url = "http://サイトアドレス"; if((document.referrer == "") || (document.referrer.match(url) == null)) { window.location.href = url; } // --> </script> ***** もしくは、 ***** <LINK rel="stylesheet" TYPE="text/css" HREF="javascript.js"> ***** のように入れたいのですが、どこにどう入れたらいいか分かりません。 そのサイトさんで聞けばいいのかもしれませんが、少し急いでいますのでどなたかアドバイスをお願いしたいです。 よろしくお願いします。

  • javascriptからCGIにデータを持たせるには

    こんがらがってきました。 javascriptにて得た値をhiddenなどに入れてsubmitして次ページに値を引っ張っていくのはわかります。 そうではなく、 たとえば全ページのURLをdocument.referrerで取得して、 <A HREF="next.cgi?maenopage=★">次のページへ</A> のように★の部分に入れてリンクで引っ張っていくのはできないと考えればいいのしたか。 できないと思っていたのですが、自信がなくなって来たので質問させていただきました。 #「絶対できません」という断言など含めてアドバイスを。 (^^;

  • リンクの色を保持

    iframeに表示されたページが、main.htmlのどのリンクを表示しているか分かるよう、main.htmlのページが表示された時に、リンク1の背景に色をつけたいと思っています。そして、リンク2がクリックされた時は、リンク2をクリックしていることが分かるよう、リンク1の背景の色をなくしリンク2の背景に色をつけたいと思っています。 つまり、 (1)main.htmlのページが表示された時に、リンク1の背景に色をつける (2)リンク2がクリックされた時は、リンク1の背景の色をなくしリンク2の背景に色をつける (3)リンク3がクリックされた時は、リンク2の背景の色をなくしリンク3の背景に色をつける をしたいと思っています。どのようにすればいいでしょうか?よろしくお願いします。 <--test.html--> <html> <head> <Meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <Title>テスト</Title> </Head> <body> <ul> <li><a href="main.html">main</a></li> </ul> </body> </html> <--/a.html--> <Html Lang="ja"> <Head> <Meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <Title>テスト</Title> </Head> <Body> <iframe src="http://yahoo.co.jp" name="test"></iframe> <ul> <li><a href="http://yahoo.co.jp" target="test">リンク1</a></li> <li><a href="http://www.goo.ne.jp/" target="test">リンク2</a></li> <li><a href="http://www.biglobe.ne.jp/" target="test">リンク3</a></li> </ul> </Body> </Html>

専門家に質問してみよう