iframe内ページのページ内移動

このQ&Aのポイント
  • 親ページ「A」のiframeで「B」をよみこませる。親ページの先頭を常に表示させる方法について教えてください。
  • 「B」には1月~12月までのカレンダー表がタテに並んでおり、1ヶ月分だけ表示させる。カレンダー間のページ内移動を可能にする方法を教えてください。
  • 「A」を読み込んだ時点で、「B」の特定の月の部分のみ指定で見えるようにしたい。手動で表示する必要があります。
回答を見る
  • ベストアンサー

「iframe内ページ」の「ページ内移動」

■現在しようとしていること --------------------------------------- index.html=「A」/ calender.html=「B」 iframeは「A」の中ごろにあります --------------------------------------- 1)親ページ「A」のiframeで「B」をよみこませる 〔補足※iframeのサイズはwidth:500×height:200〕 2)「B」には1月~12月までのカレンダー表がタテに並んでおり、iframeでの表示範囲は1ヶ月分だけ見えるようにする 〔補足※1ヶ月のカレンダーの縦は200px〕 3)「A」を読み込んだ時点で、「B」の特定の月の部分のみ指定で見えるようにしたい(自動で変わるのでなく手動で変える) 4)「B」のページは、各1ヶ月(200px)ごとにページ内移動でき、「▲last」「▼next」で前後のカレンダーにジャンプする --------------------------------------- ■現在の記述 ◆親:A側 <iframe src="calender.html#200705" width="500" height="200"></iframe> ◆フレーム内:B側 <p><a href="#200704" target="_self">▲LAST</a></p> <p><a name="200705"></a>2007/MAY 5</p> <p><a href="#200706" target="_self">NEXT▼</a></p> --------------------------------------- ■現在の状況 ・「A」を開いたとき ・「A」から「B」内のページ内リンクを操作したとき 以上のときに、iframeを指定しているページの中腹あたりをページの先頭としてしまう。(「B」内の特定箇所をはじめに表示させることはできているが、ページの先頭がページ「B」の先頭になっている) --------------------------------------- どのようにすれば、常にページの先頭をページ「A」の先頭にしておくことができるでしょうか? どうぞよろしくお願いいたします。

  • HTML
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

>「indexを開いたときにiframe内ページをページの途中から表示させる方法」 index.html側から操作する事も可能かもしれませんが、 calender.html側で処理した方が楽だと思います。 window.onload = function(){ var today = new Date(); window.scrollTo(0,today.getMonth()*200); } こんな感じで、calender.htmlのonloadイベントを使います。 ------------------------------------------ ついでに、細かい所ですが、説明しておきます。 >function next() {window.scrollBy(0,200);void(0);} function next() {window.scrollBy(0,200);} ここにはvoid(0)は不要です。詳細は下記。 ><a onClick="next()">NEXT ▼</a> <a href="javascript:void(0)" onClick="next()">NEXT ▼</a> void(0)を書く必要があるのは、hrefの中です。 hrefを付けると、「NEXT ▼」がリンクの表示(通常は青色で下線付き)になり、リンクであることが分かりやすくなります。 hrefを付け、void(0)を書かないと、違うページに飛ばされる場合があります。 void(0)とは、値を何も返さない → ページを変更しない という、意味合いです。 ------------------------------------------ さらに細かい指摘ですが、カレンダーのスペルはcalendarですよ。

dumbo_funa
質問者

お礼

カレンダー側から操作するということを全く思いつきませんでした。 おかげさまでとても助かりました! 無事、思うとおりに動作させることができました。 しかも毎月月がかわるたびに表示位置を指定しなくてすむ方法をお教えいただきましたので、更新も負担がかからなそうです。 カレンダーのつづりも直しました。ちょっとしたところで教養のなさがでてしまいお恥ずかしいかぎりです。 void(0)に関するご説明も大変勉強になりました。 これからも自分でもっと理解を深めていこうと思います。 このたびは本当にどうもありがとうございました。

その他の回答 (1)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

カレンダーの高さが決まっているのであれば、scrollTo()でスクロールさせるとか、どうでしょう? <a href="javascript:window.scrollTo(0,0);void(0);">▲LAST</a> 2007/MAY 5 <a href="javascript:window.scrollTo(0,400);void(0);">NEXT▼</a>

dumbo_funa
質問者

お礼

とても素早いご回答ありがとうございました。 アドバイス、とても参考になりました。javascriptのことはあまりわからないのですが、ご提示いただいたソースを参考にあれから調べて下記のようにすることにいたしました。無事上手くできました。 ---------------------------------------------------- function next() {window.scrollBy(0,200);void(0);} function last() {window.scrollBy(0,-200);void(0);} <a onClick="next()">NEXT ▼</a> <a onClick="last()">▲ LAST</a> ----------------------------------------------------- よろしければ、もう一つの問題である「indexを開いたときにiframe内ページをページの途中から表示させる方法」もご存知でしたらアドバイス頂ければと思います。 どうぞよろしくお願いいたします。

関連するQ&A

  • iframeから別ページへの表示

    <li><a href="iexample_a.html" target="example1">上のフレームにサンプル1を表示</a></li> <li><a href="iexample_b.html" target="example1">上のフレームにサンプル2を表示</a></li> <p><iframe src="iexample_a.html" width="300" height="80" name="example1">代替内容</iframe></p> という形で、iframeを作って表示させたのですが、そのiframeの下にボタンか<a href="" "" target="_blank"で、そこをクリックすることで、その表示画面を別のページに表示させたいのですが、リストからiframe内に画像を表示させていて、<a href=" "の" "は空欄のままなので、うまく出来ません。 これはあきらめるしかないのでしょうか? それとも、リストのURLをどこかホームページ内に表示させることが出来るのでしょうか? リストによってつぎづぎに変わる画像を別ページで大きく表示させたいので、このような質問になりました。 初心者ですので、あまり難しいことは分かりませんが、教えていただける方、よろしくお願いいたします。

  • iframe内でのスクロールについて

    iframeに関する質問です。 iframe内のみアンカーでスクロールしたいのですが、iframe含めページ全体がスクロールしてしまいます。 sampleファイルとして質問したい部分を抜粋したものを下記を記載します。 ◆index.html(親html) ◆01.html(iframe含む子html) ↓ ◆index.html <ul> <li><a href="01.html#Aarea" target="inline">子htmlのAへスクロール</a></li> <li><a href="01.html#Barea" target="inline">孫htmlのBへスクロール</a></li> <li><a href="01.html#Carea" target="inline">孫htmlのCへスクロール</a></li> </ul> <iframe src="01.html" id="inline" name="inline" width="300px" height="300px"></iframe> ◆01.html <div name="Aarea" id="Aarea" style="background:#00F; width:300px; height:300px; color:#CCC;"> <p>A area</p> </div> <div name="Barea" id="Barea" style="background:#9C0; width:300px; height:300px; color:#CCC;"> <p>B area</p> </div> <div name="Carea" id="Carea" style="background:#C36; width:300px; height:300px; color:#CCC;"> <p>C area</p> </div> これを実行した際に親であるindex.htmlもスクロールしてしまいます。 以前にも似た質問がされていましたが、対処方法が思っていたものと違っていた為質問自体重複してしまうかもしれませんが質問するに至りました。 完全にiframe内のみをスクロールさせる方法はありますでしょうか。 よろしくお願いします。

  • <iframe>で読み込むページの高さを自動取得して、heigthに代入

    一つ大きなフレームを <iframe name="disp" src = "" height=1000 width=1000 frameborder=0 scrolling=auto></iframe> とおいて、同一ページ内から<a href="test.html" target=disp> として、test.htmlが空白ページの<iframe>内に表示させるようにしたいのですがその都度、読み込むページの高さを自動取得して、heightとして自動的に適切な高さに変換するということはできいないでしょうか?

    • ベストアンサー
    • HTML
  • 自身のページとiframeの2つのページを同時更新する方法

    いつもありがとうございます。初心者です。御指導お願いします。 テキストにリンクを貼って、クリックと同時にiframeの2ヶ所のページにGETでデータが送信され、同じ値がGETで自身のページにも送信され 自身とiframeの3つのページが同時に更新されるようにしたいのですが、下記の記述では、GETで送信されて、iframe内のページは更新されるのですが、自身のページは更新ボタンを押さないと内容が更新されません。 テキストリンクをクリックしただけで、自身のページとiframe内の2つのページを同時更新できる方法を教えて下さい。 <SCRIPT language="JavaScript"> function Syncro(mPage,cPage,sPage){ parent.main.location.href=mPage; parent.control.location.href=cPage; self.location.href=sPage; } </SCRIPT> phpで書いたページ内のテキストリンクです。 <A HREF="Javascript:Syncro('right.php?entry_day=2008-02-04','top.php?entry_day=2008-02-04','offer_calender.php?entry_day=2008-02-04')">2008-02-04</a> phpで書いたページ内のiframe のページ <td bgcolor="#999999"><iframe src="right.php?entry_day=2008-02-04" name="main" width="300" height="330" scrolling="yes"></iframe></td> <td bgcolor="#3399CC"><iframe src="top.php?entry_day=2008-02-04" name="control" width="677" height="330" scrolling="yes"></iframe></td>

  • 一つのボタンでページ移動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の外部リンクは全て移動するとか。。。 ど素人なので、違う簡単な方法があれば教えてください。

  • iframeの中でページ内リンクはできますか?

    iframeを使って下記のようなつくりでHTMLを組んでみましたが、Chromeでリンクに飛ぶことができません。((1)をクリックすると(2)の位置に飛んでほしい) = A.html = <html> <body> <iframe src="B.html" scrolling="no" frameborder="0" width="750" height="2000"></iframe> </body> </html> = B.html = <html> <body> <a href="#CCC"><img src="xxx.jpg" /></a>…(1)   ・   ・   ・ <a href="C.html" name="CCC">あいうえお </a>…(2) </body> </html> ざっくりと書いてしまいましたが、親HTML(ここでいうA.html)では指示をせず、あくまでiframe中の子HTML(ここでいうB.html)の中でページ内リンクをしたいと思っています。 ちなみにiframeを使っていますが、ブラウザ上の見え方としては、A.htmlに1ページで組んでいるかのような形にしたいと思っています。 ネットでいろいろ調べてみましたがよくわからず、記述が悪いのか、Chromeではうまくいかないのか、悩んでおります。(Sarfari等、うまくいったブラウザもあるのですが…) よい方法がございましたら教えてください。 宜しくお願いします。

  • 複数のiframeの読み込みについて

    とある事情があり、制限がかなりある中、何とかiframeでやりくりをしていたのですが、 下記の通り(コード、画像参照)ページを組んだところ、 IE11、chrome34.0で確認をしたところ、下記の通り表示がおかしくなってしまいました。 制限が色々あるため、少しイレギュラーなコードの組み方をしており、どこが原因なのかがわからない状態です。 状況などをまとめましたので、お手数おかけいたしますがご教授いただけますでしょうか。 ■■■ページの概要について 恐らく下記のコードと添付の画像を見ていただいた方がわかりやすいと思いますが、制限や概要を記述しておきます。 ・表示させる方のページをA.html(親ページ)、iframe内で読み込むページをB.html(子フレーム)とします。 ・親ページの方にはかなり使用できるタグなどに制限があり、javascriptが使用できません。文字数にも制限があります(子フレームの方は自由です。) ・親ページも子フレームも触れるものの、この2ページは別ドメインです。(下記の例は相対パスで記述しています) ・子フレームの内容は、下記の例では内容が少ないですが、実際にはかなり長いページになります。ただ、ページは分けない方向でお願いします。 ・iframeはスクロールが出ないように高さを調節しています。 ・ページ内リンクを使用したいのですが、iframe内だけではなく、親ページから見た状態でページの途中に飛ばしたいため、  親ページの方にページ内リンク用のアンカーをつけ、複数のiframeで子フレームの内容を表示させています。 ・子フレームのコンテンツ毎にiframe表示用のアンカーをつけ、親ページで細かくiframeを分けて表示させています。 ・(ページ内リンクは親ページの方に記述することも出来ます。) ちなみに過去に次のような記事を見つけましたが、どちらも試すこともできない状態です。 http://okwave.jp/qa/q1105662.html http://okwave.jp/qa/q2938546.html ■■■表示のエラーについて(サーバ上でも、ローカルでも同じような状態です。) ・ページを読み込むと、一番上ではなく、一番下のiframeのところで止まります。  (⇒ページが読み込むと同時に一番上に行ってほしいです。) ・ページ内リンクを付けていますが、リンクを押しても該当のヶ所に飛ばず、  読み込むように少しページがぶれるのですが、元の位置のままです。 ・IE11のみですが、リンクで使用している画像がぼやけて表示されます。  (外部CSSで文字の背景に設定しています。) ■■■コードについて ◆A.html(親ページ) ※JSは使用不可です。 ※<body>は触れません。 ※B.htmlのページとは別ドメインです。 <!--ページ内リンク--> <iframe src="B.html#Blink" frameborder="0" width="850" height="200" marginwidth="0" marginheight="0" scrolling="no"></iframe> <!--ここから#Baの内容--> <a name="linkAa" id="linkAa"></a> <iframe src="B.html#Ba" frameborder="0" width="850" height="580" marginwidth="0" marginheight="0" scrolling="no"></iframe> <!--ページ内リンク--> <iframe src="B.html#Blink" frameborder="0" width="850" height="200" marginwidth="0" marginheight="0" scrolling="no"></iframe> <!--ここから#Bbの内容--> <a name="linkAb" id="linkAb"></a> <iframe src="B.html#Bb" frameborder="0" width="850" height="595" marginwidth="0" marginheight="0" scrolling="no"></iframe> <!--ページ内リンク--> <iframe src="B.html#Blink" frameborder="0" width="850" height="200" marginwidth="0" marginheight="0" scrolling="no"></iframe> <!--ここから#Bcの内容--> <a name="linkAc" id="linkAc"></a> <iframe src="B.html#Bc" frameborder="0" width="850" height="565" marginwidth="0" marginheight="0" scrolling="no"></iframe> ◆B.html(子フレーム) ※JSは使用可です。 <div class="pageLink"> <a name="Blink" id="Blink"></a> <ul> <li><a href="A.html#linkAa" target="_top">#linkAaへリンク</a></li> <li><a href="A.html#linkAb" target="_top">#linkAbへリンク</a></li> <li><a href="A.html#linkAc" target="_top">#linkAcへリンク</a></li> </ul> </div> <a name="Ba" id="Ba"></a> <div>Baの内容</div> <a name="Bb" id="Bb"></a> <div>Bbの内容</div> <a name="Bc" id="Bc"></a> <div>Bcの内容</div> 以上です。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • iframeのurlをクリックで書き換えたい。

    <iframe id="map" src="https://A.co.jp" width="800" height="450"></iframe> <ul> <li><a href="https://B.co.jp">Bサイト</a></li> <li><a href="https://C.co.jp">Cサイト</a></li> </ul> iframeのURL「https://A.co.jp」を下のリンクをクリックすることで「https://B.co.jp」などに書き換えて表示を変更したいと考えています。 JavaScriptで可能と思うのですが、どのようにしたらいいのかわかりません。 よろしくお願いいたします。

  • iframe の動作がうまくいかない

    http://personal.okwave.jp/qa3883201.html 先ほどこちらで質問したものですが、少しいろいろとわかりましたので、 それを踏まえて改めて質問させてください。(上記URLは無視でも結構です) あの子の生年月日は?<br> <a href="sample/iframe_a1.htm" target="sample">A1.2000年3月9日</a><br> <a href="sample/iframe_a2.htm" target="sample">A2.2000年9月3日</a><br> <a href="sample/iframe_a3.htm" target="sample">A3.2000年3月9日</a><br> <a href="sample/iframe_a4.htm" target="sample">A4.2000年9月3日</a><br> <iframe src="sample/iframe_q.htm" name="sample" width="200" height="150"> </iframe> リンク先が全て同一サイト内に指定してあります。これは正常に作動します。 ところがリンク先に全く別サイトURLをからめると、IE6.0でうまく作動しません。 (切り替えが途中でできなくなる) 同じものを Firefox で確認すると、切り替えがちゃんとできます。 これをIE6.0でもできるようにしたいのですが、どのようにすればよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • iframeごとに戻るボタンを

    1ページ内に2つの iframe があります。 <a href="http:ok~~" target="aaa">A</a> <iframe name="aaa"></frame> <a href="http:goo~~" target="bbb">B</a> <iframe name="bbb"></frame> (詳細略) Aを開いて2~3度フレーム内移動して、Bを開いて2~3度フレーム内移動します。 ここでブラウザの戻るボタンを押すと、この順番の逆をたどります。 つまりBの戻りを経ないとAの戻りができません。 Aでの移動の戻りを直接やりたいのですが、 フレームごとに戻らせるようにするためには、どういう構文になるのでしょうか? 一応それぞれに、 <a Href="javascript:history.go(-1)" target="aaa">戻る</a> <a Href="javascript:history.go(-1)" target="bbb">戻る</a> とやってはみましたが、実行するとエラーになってしまうようです。 よろしくご回答の程お願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう