• ベストアンサー

フレームのアドレスを常に取得

今作っているWebページで、良くある左右に分割したフレームページを作ろうと思います。 ですが、フレームページの場合、中のページが切り替わってもアドレスバーのURLは変わらないので、Javascriptで取得し、メニュー側のページに一行テキストボックスに表示したいと思っています。 ですが、手動で「取得」ボタンを押してURLの取得は出来たものの、右のページが切り替わるたびに押す必要がある状態です。 これを自動化する方法はありますでしょうか よろしくお願いします。

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

  • ベストアンサー
  • osumitan
  • ベストアンサー率33% (102/307)
回答No.4

ANo.3の補足です。 右フレームで開くのは一般のページでしたか。。。。 それなら、もちろん右ページから要求を受け取ることはできませんが、 URLを取得することもできないはずです。 これは、ブラウザ側がセキュリティ上の理由で設けている制約です。 2つのウィンドウで「document.domain」の値が異なるとき、 片方のウィンドウからもう片方のウィンドウに対して Javascriptでさわることはできないようになっています。 そうでないと、制作者の意図しない操作を行うことができるからです。 そもそもdocumentやlocationにさわること自体できないと思います。 ちなみに「server1.domain.co.jp」と「server2.domain.co.jp」なら、   document.domain = "domain.co.jp"; とお互いにドメインを書き換えることによって処理できます。 ただし、先頭からピリオド区切りで削るような値しか代入できません。 そのためには当然、相手側サーバの了解を得なければなりません。 なので、この場合、最初にメニューを選択したときのURLを表示し、 そのあと自動的に変わっていくことはできないということです。 (むしろ、どうやって手動で取得できたんでしょうか…)

Betamo
質問者

お礼

そうなんですか。私もこのことをみて、はあ何故手動で取得できたのかなって思って試してみたらおっしゃるとおり同じドメインのページ内なら取れましたが他サイトのドメインは取れませんでした。 ありがとうございました。

その他の回答 (5)

  • siyuno_o
  • ベストアンサー率26% (135/510)
回答No.6

#5です タイマー試されていたのですね 良く読んでいなくって ご免なさい

  • siyuno_o
  • ベストアンサー率26% (135/510)
回答No.5

#1の方の「onload="func()"」を、少し変えて タイマーを、使えば △△=setinterval("func()",時間) △△は、タイマーの識別変数(省略可能) 時間は、繰り返して実行する間隔(1000分の1秒単位です)

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.3

まず、URLを表示するタイミングを決めないといけません。 左のメニューを選択して右側のページが切り替わったときに表示するなら、 メニュー側がそのページのURLをわかっているわけですから、 右のページを切り替えつつテキストボックスも更新すればOKでしょう。 メニューを選択してページを切り替え、それから右のページだけが 進んでいったときも随時メニュー側のテキストボックスを更新するなら、 ページが切り替わる前か、ページが切り替わり終わったあとに、 右のページが左のメニューに自分のURLを教えてやる必要があります。 左側のページは何もしていないので、右側のページから教えてもらわないと 右側のページが切り替わったことはわからないからです。 その場合、すべての右側のページにJavascriptを仕込む必要があります。 細かいやり方などは、どのようにしたいか、今どうなっているか、 もう少し書き込んでいただいた上で、また回答します。

Betamo
質問者

補足

回答ありがとうございます。 確かに右のページから要求を受け取らないといけないことは理解しているのですが、Webお気に入り(各ユーザーが自由に追加可能)ということがあり、右側のページは一般のページなので、切り替わったページから要求を受け取ることは事実上出来ないのではないかと思っています。そこで、左側のフレームに、1秒ごとに右側のページ音URLを自動取得させてみると、エラーになってしまいます。 そこで、テキストボックスをクリックしたら右のページが表示されるように出来ないかと思い次のようにしてみました <INPUT type="text" name="urls" onClick="this.value = parent.LIUhuhUDHIleuowiuiw3oioIHuUDHUw.location.href"> 「LIUhuhUDHIleuowiuiw3oioIHuUDHUw」これはフレーム名です。 こうすると、右側のページが初期のページの場合、取得に成功しますが、右側のページが初期以外になるとエラーになってしまうのです。 他に伝えておくべきことがあるでしょうか。よろしくお願いします。

  • YSW
  • ベストアンサー率23% (33/141)
回答No.2

#1です。 「onload="func()"」の間違いです。 ちなみにfunc()は、関数ですので、関数名を適当に変えてください。

Betamo
質問者

補足

申し訳ないです。 onloadをいろいろな部分に入れて試したのですがいずれの場合も初期URLのみ取得され、それ以降の取得が出来ませんでした。

  • YSW
  • ベストアンサー率23% (33/141)
回答No.1

「onload="func()」とかでは、どうでしょう。 試してないんで、動くかどうかわかりませんが。

関連するQ&A

  • フレーム内のURLを表示させる方法

    2分割のページがあります。左にメニュー、右に本文という形です。左のメニューを開いていくと、右に次々にページが展開されますが、IEのアドレスバーに表示されているアドレスは変わってくれません。(フレーム構造でないと変わるんですよね!) フレーム構造のまま、入れ子になっているページのURLが表示されるようにしたいのですが、それは可能ですか?矛盾しているかもしれませんが・・・

    • ベストアンサー
    • HTML
  • 違うフレームのURLを取得したい

    いつもお世話になっております。 上下でフレームが分かれていて、上にメニュー、下に内容が表示されます。 下に表示されているURLによって、上のメニューのボタンの色をVBScriptのIF文を使って変えたいと思っています。 そこで、下のフレームに表示されているURLを上のフレームで取得したいのですが、どうしたら実現できるでしょうか。 JavaScriptでparent.下のフレーム名.location.hrefとすれば、URLを取得できることまでは調べたのですが、JavaScriptからASPに値を渡す方法が分かりませんでした。 ASPだけでURLを取得する方法か、JavaScriptで取得した値をASPに渡す方法のどちらかをご存知の方がいらっしゃったら教えてください! よろしくお願いいたします。

  • 別フレームのテキストボックスに説明表示

    フレームを使ってHPを作っていますが、 どうにもできないところがあり困っています。 左右に分割していて、 左フレーム name="menu" 右フレーム name="main" で、左フレーム内のリンクをオンマウスすることで、 右フレームのテキストボックス name="readme" に説明文を表示させたいのです。 どなたか教えていただけませんでしょうか?

    • ベストアンサー
    • HTML
  • フレームを使ったページのアドレスバーへのURL表示

    上・中・下と3分割したフレームページを作成しています。 上と下はメニューのリンクが張られており、クリックすると中央にリンク先が表示されるようになっています。 フレームを使うとメインのURLしか表示できないことは知っているのですが、 ここで検索するとJavaScriptでURL表示可能とか!? 中央に表示されるページのURLをアドレスバーに表示する方法を知っていらっしゃる方、是非伝授願います!!m(_ _)m

  • テキストボックスに入力されたURLのページを隣のフレームに表示させるには…?

    すいません、タイトルでうまく説明できなかったのですが、左右で二分割されているフレームがあるとします。そして、左のフレームにはテキストボックスとボタンが配置されています。このテキストボックスにURLを入力し、ボタンを押すと右側のフレームにそのページが表示される…という事をやりたいのですが、どうすればいいでしょうか?どなたかご存知の方いらっしゃいましたら宜しくお願い致します。

  • フレーム使用時に読み込んだページのURLをアドレスバーに表示するには?

    現在、初めてのHPを作成中の者です。 メニューとメインページをフレームで2分割したデザインにしているのですが、アドレスバーに表示されるURLは常にメニューページのものになってしまいます。 他の方のHPを拝見していると、同じ様にフレームを使用されていても、ちゃんとメインページのURLが表示されているところもあります。 どのようにすれば、アドレスバーにメインページのURLが表示されるようになるのでしょうか? どうぞ宜しくご教授ください。

  • フレームページのアップロードについて

    ホームページビルダー8で、フレームページを作った場合 アップロードするとき、フレーム分割したTOPページは、indexにするべきですか? 例えば、左右の分割にした場合、左をindex,右をmenuとして保存して アップロードすればいいでしょうか?

  • フレームを利用してのWebページの操作

    こんにちは。JavaScriptについてはほとんど初心者なので 教えていただきたいのですが、 フレームAのページでテキストボックスに入力したデータをボタンを押すことでフレームBのテキストボックスに、 書き込むことは可能でしょうか? JavaScriptサンプル集のページを参考に実験してみたところ、フレームA・フレームBのHTMLが自分のPC上にある場合は可能だったのですが、フレームBをWebページに指定すると途端にできなくなりました。テキストボックスの場所の指定も正しくできているのですが・・・ 参考ページ等、何かご存知でしたらお教え下さい。 よろしくお願いいたします。

  • フレームの四分割でリンク

    こんにちは。よろしければ教えて下さい。 フレームを上中下の三分割(10%、80%、10%)にし、中を更に左右(20%、80%)で割りました。 これらを 上=ue 中=naka 下=sita 左=hidari(メニューページ) 右=migi(メインページ) とします。 この時、左(メニュー)から右(メイン)にリンクすると同時に、上もしくは下もリンクさせたい(右を押すと左と上が同時に変わる)のですが、htmlもしくはスタイルシートで出来るでしょうか? 上をサブメニューとして使いたいのです。 申し訳無いのですが (1)JavaScriptは使えません。 (2)CGI非対応スペースです。 (3)これ以上フレームを増やすのは避けたい です。 ちなみに過去の質問は拝読しましたが、読んだ限り3分割、フレームを更に入れ子にするという回答が主でした。 しかし最初に上中下と組んでしまっているので、入れ子が出来ません。 フレームを三分割にして左メニューでテーブルを組んで見た目上同じ効果を出す、というのは考えたのですが、直接リンク出来ればそれに越した事は無いので、お尋ねさせて頂きました。 宜しくお願い致します。

  • フレームを使ったときに横スクロールバーを表示させたい

    社内ホームページで左右分割のフレームを使おうと思っています。 左のフレームに http://www14.plala.or.jp/sugachuu/JavaScript/index3.html のページで紹介されている『Explorer風メニュー(2)』を使用して、 選択されたファイルを右のフレームに表示したいのですが、 その際、左フレームのリンクがどんどん奥深くなった時に、フレーム幅より長いリンク先名称が折れ曲がって表示されてしまいます。 とても見にくいので横スクロールバーを表示させて一行で表示させたいのですが、やり方がわかりません。 縦スクロールバーは自動に出てきます。 IEはバージョン6.0です。 お手数ですが、この件に関して分かる方がいらっしゃいましたらよろしくお願いいたします。

専門家に質問してみよう