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

このQ&Aのポイント
  • サイト内の相互リンクを利用して、前のページのURLを取得する方法について教えてください。
  • 年輩の方でも見やすいように表示領域を調整し、フレーム解除を選んだ場合にはノンフレームのまま行き来する方法についてアドバイスをお願いします。
  • referrerでURLを取得できないブラウザの場合でも、前のページのURLを取得する方法を教えてください。
回答を見る
  • ベストアンサー

前のページの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

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

  • ベストアンサー
  • Adams2001
  • ベストアンサー率67% (70/103)
回答No.2

>「経験談」は内緒ですか? いいえ、内緒にするほど大層なものではありません(^_^;)目次ページをコンテンツのグループごとに用意し、トップページと各目次へのリンクを全ページ(の上下)につけただけです(前後の文書へのリンクや、サイト内検索も用意してますが)。目次にワンクリックで到達できれば迷子にならないだろう、というだけですが効果はありました。トップページへの誘導もフレーム使用時よりスムーズにいってます。 別の例ですと、今、300ページ(ファイル数)を超えるオンライン文書をイントラネット用に作成してるのですが、全ページに目次をつけています(左に目次、右にコンテンツ。イントラでなければ目次は右にしたかも)。目次は階層化しておき、ページ毎に必要な部分だけ階層を展開した形の静的なリンクで作成しています。自文書位置は目次中にリンクではなく体裁を変えて明示。印刷時は目次部分が印字されないようにスタイル設定してます。 中には同じ内容のページもあるのですが、目次の階層の方を優先して別のページとして用意してます。コピーしてちょっと書き直す(主に目次部分)だけですので労力的には小さいです。このような工夫でそもそもジャンプする必要性を減らしています。 それでも目次の階層に従わずにリンクによってジャンプすることもありますが、その場合はブラウザの戻るボタンで戻るか(これが一番直感的に操作できるようです)、目次を利用して復帰してもらいます。 コンテンツの性格や量、構成によって向き不向きがありますから、これで十分なケースもある、ということで。

loveobo
質問者

お礼

お礼が遅くなってゴメンナサイ。いろいろ試していたもので。 経験談を拝見し、私のページデザインも「トップページへの誘導はそこそこ」 「フレーム版への誘導はいらない(トップページに選択肢は用意してある)」 と思いなおしました。でも、JavaScript修行中?の私は、つたないアイディアを 実装してみたかったので、サイト外のdocument.referrerが取得できたときのみ tPage = "<a href='framesetPage.html' target='_top'>" 条件に合わなければ tPage = "<a href='topPage.html'>" として document.write(tPage) を試みました。 NN4.7&IE5/Macで無事に走ったのですが、NN4.7で『再読込み』したら、 変数 tPage に依存する<a>タグが機能しないことに気づきました。 tPage = "<a href='topPage.html'>" を条件分岐の前に書いたり、 if (document.referrer=="") の処理を明示してもダメ。補助的ナビゲーション のために基本的な機能が失われては本末転倒なので、やめておきます。 アップロード前に気づいて良かった。(^ ^;

その他の回答 (1)

  • Adams2001
  • ベストアンサー率67% (70/103)
回答No.1

以前、フレームを利用して閲覧しやすいナビゲーションを実装していたのですが、検索エンジンから下位のページに直接アクセスしてくるユーザをどう誘導するか、色々と考えたり試したりしました。 がしかし、結局フレームなしでも問題なくユーザをガイドできるようなナビゲーションを用意しました(これが一番改装後のメンテナンスが容易、と判断)。その結果、フレームは不要になり、フレームを使用しないサイトとして再構築しました。以上が経験談。 これは私見に過ぎませんが、Javascriptがオンであることが必須用件であるナビゲーションはマイナス評価になります。セキュリティ向上のため(あるいは快適なサーフィンのために)Javascriptをオフにしているユーザも少なからずいますし、そういう設定を社員に義務付け/推奨する企業もあります。 ユーザビリティってことに着目しますと、便利であっても操作が複雑なオペレーションは思ったほどユーザビリティを向上させません。一般的なユーザは「そのサイトの使い方」を学習するくらいなら、学習せずに見れる範囲だけ見るか、単に立ち去っていきます。 #loveoboさんの提供するナビゲーションがそうだ、ということではありません。一般論ですので誤解なきよう。 なんて話がJakob Nielsen博士のAlertboxにはたくさん載っていて、サイトのナビゲーションを考える時には大変参考になります。参照URLを一度ご覧下さい。 まったく回答になっていませんので「アドバイス/自信なし」にしておきます。そういう考え方もある、程度に受け止めていただければ幸いです。

参考URL:
http://www.usability.gr.jp/alertbox/index.html
loveobo
質問者

お礼

> そういう考え方もある、程度に受け止めていただければ幸いです。 アドバイスありがとうございます。ウェブに不慣れな訪問者様(たぶんデフォルトで JavaScript有効)の利便を優先したナビゲーションを目指していますが、JavaScript無効 でも閲覧に支障がない(無効設定をされている方なら難無く対応できる)ように <noscript>を工夫しているつもりです。意図したユーザビリティーが実現できているか 不安ですが・・・ (汗) ご紹介のサイト、拝見した憶えがあります。やや極端な気も しますが、その主張は参考になります。 パン屑リストやlocationバーを有効利用できない訪問者様に居場所を示すために、 ノンフレームの代替ナビゲーションが思いつきません。「経験談」は内緒ですか?

関連するQ&A

  • 直フレーム内ページにきた場合とトップからきた場合の「戻る」について

    以前「複数フレーム内リンク」でお世話になりました。今度も煮詰まってしまいました。 ・トップ→コーナー→末端ページという構成 ・「上部・左・メイン」の3つフレームを使用している状況です。 検索でフレーム内の末端ページに飛んできた人に「戻る」ボタンでコーナーのindexにフレーム有りの状態で表示したいのです。 只今、上記については作動できるのですが、逆にトップ→コーナー→末端ページと通常の流れできた人が、その「戻る」を押すと3つのフレームの中のメインフレームにまた3つのフレームが表示されてしまいます。 戻るに「target='_top'」や「target='_parent'」とつけてもいきません。といいますか、付け方がわかりません。 ソースは↓ <script language="JavaScript"> function framepage(filename) { document.open(); document.write("<frameset rows='80,*' frameborder='NO' marginwidth='0' marginheight='0' framespacing='0' border='0' target='_top'>"); document.write("<frame name='topFrame' src='上部.html' scrolling='NO' noresize>"); document.write("<frameset cols='152,*' frameborder='NO' marginwidth='0' marginheight='0' framespacing='0' border='0' target='_top'>"); document.write("<frame name='leftFrame' src='左.html' scrolling='NO' noresize>"); document.write("<frame name='main' src=" + filename + ">"); document.write("</frameset>"); document.write("</frameset>"); document.close(); } </script> bodyの方は↓ <a href="javascript:framepage('../index.html')">[戻る]</a> となっています。 どなたか宜しくお願いします!

  • NNでロールオーバーしたgifアニメの動きがおかしい

    ホームページを作成し、onmouseするとメニューのアイコンが gifからgifアニメに切り替わるようにしています。 IE6.0とNN7.1で動作確認しているのですが、 NNの方で、画像は切り替わるのですがgifアニメが うまく動きません。IEでは問題なく動作します。 gifアニメは文字の色が順番に変わるアニメーションなのですが、 onmouseするとアニメーションの最後の画像が表示されるだけでうまく動きません。 プログラムの組み方が悪いのか、gifアニメが悪いのか、 NNが悪いのかわからず困っています。 <head>と</head>の間↓ <script language="JavaScript"> <!-- if(document.images){ a1=new Image(); a1.src="image/b_top_m.gif"; a2=new Image(); a2.src="image/b_top.gif"; } else{ a1="" a2="" b1="" b2="" document.a="" } --> </script> <body>と<body>の間↓ <a href="top/top_frame.html" target="mid" onMouseover="document.a.src='image/b_top_m.gif'" onmouseout="document.a.src='image/b_top.gif'"> <img src="image/b_top.gif" border="0" alt="top page" name="a"></a> &nbsp;<a href="gal/gal_frame.html" target="mid" onMouseover="document.b.src='image/b_gallery_m.gif'" onmouseout="document.b.src='image/b_gallery.gif'"> <img src="image/b_gallery.gif" border="0" alt="works" name="b"></a> まだ初心者でJavaScriptについてはよくわかりません。 ちなみに、1つ「"」を抜いてエラーにするときちんと動いたりします(-_-;) よろしくお願い致します。

  • ファイルサイズの取得について

    初めてのJavaScriptです、宜しくお願いします。 フレームページで左ページから右ページのファイルサイズを調べる事はできますか? <script type="text/javascript"> function getSize(){ document.write(parent.rightFrame.document.fileSize); } </script> </head> <body><!-- leftFrame --> <p><a href="http://www.yahoo.co.jp" target="rightFrame">ヤフー</a></p> <p><a href="javaScript:getSize()">サイズ</a></p> </body>

  • インデックスページから各フレームページへジャンプさせたい

    (ローカルだと)内容ページは表示されるのですが、メニューの方が表示されません。 ?http://sakura-bewithyou.com/noutengusaindex.html? がインデックスページです。 これがインデックスページのソース(一部)です。 <td width="365" bgcolor="#ffffff"> <A HREF="?http://sakura-bewithyou.com/study.heml"target="hidari&quo...?低きところに流れる受験</CENTER> </a> </td> リンク先のソースは <HTML> <!-- 作成日 2006/1/20 4:23:20 PM --> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META NAME="GENERATOR" CONTENT="mi"> <TITLE>さくらの脳内天幕徒然草</TITLE> </HEAD> <frameset cols="20%,80%"> <frame src="studyindex.html" name="hidari"> <frame src="noutengusa-syouki.html" name="migi"> </frameset> </HTML> メニューのソースは <HTML> <!-- 作成日 2006/1/23 5:38:40 PM --> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META NAME="GENERATOR" CONTENT="mi"> <TITLE>低きところに流れる受験</TITLE> </HEAD> <BODY> <body bgcolor="#FFFF33" text="#444444" link="#808080" vlink="#808080" alink="#808080"> <CENTER> <BR> <BR> <IMG SRC = "usagi17.gif" ALT = ""> <BR> <BR> <B><font size="2" color="#666666"> <a href="noutengusa-syouki.html" target="migi">正気を取り戻そう</a><BR> <BR> <a href="noutengusa-shinnendo.html" target="migi">こんなんで新年度</a><BR> <BR> <a href="noutengusa-yorugata.html" target="migi">どうしても夜型</a><BR> <BR> <a href="noutengusa-fushigi.html" target="migi">さくらさんも不思議だわ~</a><BR> <BR> <a href="noutengusa-2hour.html" target="migi">根性で2時間、<BR> 強引に2時間、<BR> 意地で2時間、<BR> なんとか2時間</a><BR> <BR> <a href="noutengusa-ao.html" target="migi">青チャート、11センチの動揺。</a><BR> <BR> </font> </B> <BR> <A href="?http://sakura-bewithyou.com/noutengusa-top.html"><img? src="m38_5-03.gif" border="0" onMouseOver="this .src='m38_6-03.gif'"onMouseOut="this .src='m38_5-03.gif'"></A><BR> <BR> <A href="?http://sakura-bewithyou.com/noutengusa-top.html"><img? src="m38_5-06.gif" border="0" onMouseOver="this .src='m38_6-06.gif'"onMouseOut="this .src='m38_5-06.gif'"></A><BR> <BR> </CENTER> </BODY> </HTML> ローカルだとメニュー以外は表示されます。 どこが間違っているのか、まったくわかりません……。 大変申し訳ないのですが、お答え頂ければ幸いです。

  • フレームを使ったトップページで、document.referrerを取得したい

    サイトのトップページがフレーム構成になっているのですが、 フレームを使用したページの場合、BODYタグ以降って解析しないんですよね? となると、onLoadで、javaScript関数も呼べない・・。 でも、どのサイトからのリンクで自サイトが呼ばれたのかを知りたい・・。 そんな時はどういう方法があるのでしょうか? フレーム先のターゲットページにdocument.referrerを取得させても、フレーム元のURLを拾ってしまいますもんね。 何か良い手段、ご存知な方、伝授ください。よろしくおねがいたします。

    • ベストアンサー
    • HTML
  • 別ページのa name指定

    フレームを上下2分割しています。(menu.htmlとmain.html) そのうち下のフレーム(main.html)にあるボタンから違うページの特定の場所にリンクしたいのです。 同一ページの場合、 <a href="#01">○○○</a> <a name="01"></a> でいくのですが、違うページなのでどう指定していいかわかりません。 <a href="2.html #01" target="_parent">○○○</a> ではだめでした。 どなたか教えて下さい。お願いします。

  • フレームが現在表示しているURLを調べたい

    「フレームが現在表示しているURLを調べたい」 でもうまくいかないので質問しました。 1.説明 次のようにフレーム定義をします <FRAMESET cols="60%,*"> <FRAME src="l.html" name="l"> <FRAMESET rows="85%,1*"> <FRAME src="ru.html" name="ru"> <FRAME src="rb.html" name="rb"> </FRAMESET> このとき、JavaScript で フレーム ru が表示している URLを以下のJavaScriptを実行すると ru.html が返ります。 →この結果は納得できます。(^^)/ document.write(window.top.ru.location.href) ru.html 次に、フレーム l のHTMLのなかで以下のようにターゲットをruにして、リンクをつくり、それをクリックすると ru の表示内容は当然ながら http://www.asahi.com に切り替わりました。 <TR><TD><A href="http://www.asahi.com" target="ru">朝日</A></TD></TR> ここで、再び以下の命令を実行すると、こんどは、 「エラー:書き込みができません」が出てしまいます。 →http://www.asahi.com が返ることを期待していたのですが (-_-;) document.write(window.top.ru.location.href) エラー:書き込みができません 2.質問 ここで質問なのですが、フレームが現在表示中のURLを得るための記述方法をご存知の方 教えていただけないでしょうか?

  • 複数のページ履歴保持

    ちょっとコーディングでつまづいています。 例えば、 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」を表示させたいのです。 これは可能でしょうか?ただし、クッキーを使わないという条件付で。 お判りになる方、お知恵を拝借願います。

  • URLの取得について

    localserverでjavaを使っています。 a.html内を二つのフレームに分けて ひとつをaa.html(localserver内) もうひとつをab.html(外部のhttp:www~からはじまるserver)にしています。 aa.htmlでab.htmlのURL表示がうまくいきません。 document.write(parent.location);親フレームのURLの表示 document.write(parent[0].location);aa.htmlのURLの表示はうまくいきます。 ab.htmlをlocalserverのドキュメントにするとうまくいくのですが・・・ どうしたら外部サーバーにあるab.htmlのURLを取得できるでしょうか?

    • ベストアンサー
    • Java
  • HP フレームページを開き、更にページを開きたい

    左右に分割されているフレームがあります。 indexページから <A href="illust.html" target="top">フレーム</a> とリンクさせており、フレームページに飛びます。 左フレームに「A」、「B」、「C」、「D」と…リンクが張ってあり、 「B」をクリックすると、右フレームに「B」ページが表示されます。 <A href="b.html" target="right" >B</a> indexページから、フレームにリンクさせたら、フレームページが開かれますが、 さらに「B」ページを開いた状態にすることは可能でしょうか? 今の状態だと、フレームページが開かれるだけで、手動で左フレームから「B」をクリックするのが手間なのですが…。 ビルダー等のソフトは使用しておらず、メモ帳でタグを書いています。

    • ベストアンサー
    • HTML