• ベストアンサー

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
  • 回答数6
  • ありがとう数8

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

Javascriptではなかったようですね。 あと、思いつく事があるとすれば (i)frameに外部サイトを指定する事はできるのですが、 その外部のサイトがフレーム内に読み込まれるのを嫌って、なにか仕掛けをしていると、おかしくなる事があるかも。

syuricyan
質問者

お礼

外部のサイトが影響してるとは考えにくいです。というのも例えばA2のところに外部サイトを指定して、 A2→A3→A1→A4 と移動しても A1→A4→A3→A2 と移動しても最初のだけ表示されて、後は何もできません。 最初のデフォルトのsample/iframe_q.htmは表示されて、その後の1度目だけ切り替わり、 2度目以降が全く切り替わりません。ご回答ありがとうございました。

syuricyan
質問者

補足

すみません、ちょっと違いました。 A2に外部サイトを指定した場合、それ以外の同一サイト間では切り替わります。 つまりA1・A3・A4の間では切り替えできますが、一旦途中でA2をはさむと、 それ以降が切り替わらなくなってしまいます。

その他の回答 (5)

回答No.6

うまく切り替わらないとは、どういう事ですか? アンカーをクリックしても、ページが表示されない(ジャンプしない)のか、 target="_blank"と同じように、新しいウインドウに表示されたり、 tareget="_top"のような動作をするということでしょうか。 たとえば、 sample/iframe_a2.htmの中身が <body> <iframe name="sample"></iframe> </body> と書かれていると、 <a href="sample/iframe_a2.htm" target="sample">A2 </a> <a href="sample/iframe_a3.htm" target="sample">A3 </a> <iframe name="sample"></iframe> この状態でA2のリンクをクリックすると、 (便宜上、本来のHTMLでは表現出来ない表現をしています) <a href="sample/iframe_a2.htm" target="sample">A2 </a>をクリック <a href="sample/iframe_a3.htm" target="sample">A3 </a> <iframe name="sample" ・・・ フレーム内にiframe_a2.htmが表示される <body> <iframe name="sample"></iframe> </body> ・・・ /iframe> このような表示になり、iframe_a2.htmに書かれている<iframe name="sample"></iframe>が、ブラウザ全体のtarget="sample"に指定されます。 この状態でA3をクリックすると、iframe_a2.htmの中にiframe_a3.htmが表示されます。 このとき、iframe_a2.htmの中で隠しフレームにしていると、A3のリンクは飛ばないような錯覚を招くと思います。 これはHTMLの文法上は正しい動作 (フレーム名は一意にすべきですが、 複数のフレーム名に同じnameが使われているとき、このようにしなければならないという規定がないので、どんな動作をしても全て正しい動作) ですが、ブラウザによっては標準とは異なった解釈をするブラウザがあるかもしれません。 *ここでいう標準はWeb標準やW3C規定のことではなく、昔から使われている業界標準のことです。

syuricyan
質問者

お礼

いろいろと皆様にご指導いただいたのですが、未だ解決に至りません。 一旦締め切って改めて考えてみたいと思います。ありがとうございました。

回答No.5

未検証 Internet Options->Security->Custom Level->Navigate Sub-frames across different domains はどうか? #ただ、この機能はセキュリティ向上のためにあると思うので #これらを用いたコンテンツを一般公開する場合, #十分な説明をし、顧客側に可否を決めさせるべし。 #コンテンツ作成時には「代替手段が無いのか」良く考える

syuricyan
質問者

お礼

最終的に私のこのパソコンのIE6.0で確認したときのみだけ、誤作動を起こすようです。(XP SP2) とりあえずは、第三者の方が閲覧するのに対して誤作動を起こさなければいいので、 いろいろと考えてみたいと思います。ご回答ありがとうございました。

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.3

こんにちは >ところがリンク先に全く別サイトURLをからめると <a href="http://okwave.jp/qa3883487.html" target="sample">A1.2000年3月9日</a><br> <a href="sample/iframe_a2.htm" target="sample">A2.2000年9月3日</a><br> のように別ドメインのものを表示したら変わらなくなるということですよね? <script type="text/javascript"><!-- function ch(url) { document.getElementById("sample").src = url; } //--></script> <a href="http://okwave.jp/qa3883487.html" onclick="ch(this.href);return false;" target="sample">A1.2000年3月9日</a><br> <a href="sample/iframe_a2.htm" onclick="ch(this.href);return false;" target="sample">A2.2000年9月3日</a><br> <iframe src="" id="sample" name="sample" width="200" height="150"> </iframe> としたら切り替わります ※javascript off用にtarget="sample"を残していますがjavascript off時には切り替えができませんので根本的な解決にはなっていないとは思いますけど・・・

syuricyan
質問者

お礼

いろいろと検証していたところ、確認をしているこのPCのIE6.0のみで誤作動を起こしているようです。 思いもしなかったのですが、もう1台のPCでIE6.0で確認したらちゃんと切り替えできています。 また、一時的にこのPCをIE7.0にグレードアップして確認したところ、問題ありませんでした。 現在はIE6.0に戻しましたが、やはりこの状態ではできません。 あとで他のところからも確認しようと思いますが、多分問題ないのではないかと・・。 ご回答ありがとうございました。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

#1です。 さっきの回答はちゃんと状況を読んでなかった… Javascriptの制限のハナシはFirefoxでも同じ事ですのでFirefoxでうまく動くなら要因は別のところにありそうです。 それでもJavascript部分が気になる点は変わらないので どんなJavascriptか補足してみてください。

syuricyan
質問者

お礼

Javascript といいますか、前述にある <form> <input type="button" value="短" onclick="window.document.all.a.style.height = 430;" /><br> <input type="button" value="長" onclick="window.document.all.a.style.height = 550;" /> </form> のことを言っています。 ちなみに一応この部分をはずしてやってみましたが、変わりませんでした。 基本的に指定リンク先は同一サイト以外でもかまわないのでしょうか? ご回答ありがとうございました。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

元の質問に「Javascript を一部使っています」 とありますが、これが気になります。 別URLが絡んだ為にJavascriptエラーになっているのかもしれません。 Javascriptではセキュティ上の理由で別ドメインのページにアクセスできないという制約があります。 親ページからiframe内のページの内容を参照したり書き換えたりしようとするJavascriptならそういう現象になると思います。

関連するQ&A

  • HTMLアプリでインラインフレーム間リンクの表示

    HTMLアプリケーション(hta)で インラインフレームにリンクボタンを置き、 別のインラインフレームにリンク先を表示する ことができるか教えてください。 ※IE6を使用しています。 HTMLタグを書くと、フレーム内のリンクをクリックすると 別ウィンドウが開いてしまいます。 ただし、フレーム外のリンクであればリンク先の表示ができます。 また、拡張子をhtmに変更すればすべて想定通りの動作をします。 記述に誤り、もしくは良い方法があれば、教えていただけませんでしょうか。 よろしくお願いします。 ------------ aaa.hta <a href="http://www.yahoo.co.jp" target=iframe2>aaa</a> <iframe name="iframe1" src="a_1.htm"></iframe> <iframe name="iframe2" src=#></iframe> a_1.htm <a href="http://www.yahoo.co.jp/" target="iframe2">click!</a> ------------

    • ベストアンサー
    • HTML
  • 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内部で名前付きリンク(アンカー)を使用すると勝手にスクロールする

    口で説明するのは面倒くさいので以下に例を作りました。 -t1.html- <html> <a href="t2.html#b" target="ifmain">t2-b</a><br> <a href="t2.html#c" target="ifmain">t2-c</a><br> <a href="t3.html#b" target="ifmain">t3-b</a><br> <a href="t3.html#c" target="ifmain">t3-c</a><br> <iframe name="ifmain" src="t2.html" height="400" width="300"></iframe> 1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br> 1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br> 1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br> 1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br> 1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br> 1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br> </html> -t2.html、t3.html- <html> <table> <tr><td height="300"><a name="a">a</a></td></tr> <tr><td height="300"><a name="b">b</a></td></tr> <tr><td height="300"><a name="c">c</a></td></tr> </table> </html> t1.htmlを実行して頂ければわかるのですが、 t1からIFrame内部にアンカーで移動させる場合、 IFrame内部のスクロールが、なぜか呼び出し元 (windowオブジェクトで言えば、topとかparentの方)が なぜか移動してしまいます。 呼び出し元のリンクに onclick="ifmain.location.href=this.href;top.scrollTo(0,0);return false;" というようなものを組み込んでもうまく動作しません。 (IE、FireFox両方共に) なんとか回避する術はないでしょうか? IFrame内部だけ移動すれば十分ですので。

    • ベストアンサー
    • HTML
  • 一つのボタンでページ移動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とA NAMEについて 少しわかりにくいです

    index.html内にIFRAMEでA.htm<IFRAME SRC="A.htm#b"> というように載せた場合、 index.htmが一番上で表示されずに<A NAME="b">がある位置で表示されます。 例として index.htmは <title> <font>題名<br>×15個 <IFRAME SRC="A.htm#b></IFRAME><br>×15個 A.htmは <font>ああああああああ <br><br><br> <A NAME="b"> いいいいいいいい です。index.htmにアクセスした場合、"題名"の位置で表示されずインフレーム内の<A NAME="b">の位置が一番上で表示されます。つまりずれるので題名がみれなくなります。 ちょっとわかりにくいですが原因と対処方法を教えてください

    • ベストアンサー
    • HTML
  • iframe越しに文字をインプット

    クリックした文字をifame内のテキストボックスに入れたいのですが、うまく動きません。iframeの特殊な指定のしかたなどあるのでしょうか? よくわからないところ:「parent」はとりあえず入れてみただけ。 (^^; 【sample1.htm】 <A href="javascript:function voi(){};voi()" onclick="parent.document.fm1.Title.value='やったね'">転記</A> <IFRAME NAME="Frame1" WIDTH=800 HEIGHT=500 SRC="sample2.htm" STYLE="position:absolute;top:50px;left:5px;"></IFRAME> 【sample2.htm】 <form name="fm1"> <INPUT TYPE="TEXT" NAME="sample" SIZE="12"> <form>

  • iframeのターゲットの設定がうまくいかないので…教えてください。

    こんにちは。はじめまして、Alfaといいます。 ホームページを作成中、どうしてもうまくいかないことがあり、質問させていただきました。 早速ですが、 (1) main.htmlの中にiframeがあり、 main.htmlを開くとまず、a.htmlというものが表示されます。 (2) main.htmlの中のメニューボタンBを押すと、iframe内にb.htmlが表示されます。 (3) ページC(iframeなしの、全く違うページ)から B.htmlを表示させるように<リンク>をはりましたが、思い通りに動作しません。 <a href="main.html" onClick="parent.target.location.href='b.html'">リンク</a> と書いたのですが、main.htmlは開くのですが、a.htmlが表示されてしまいます。 b.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
  • 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で可能と思うのですが、どのようにしたらいいのかわかりません。 よろしくお願いいたします。

  • <a target="_top" href="***.html">が反応しない

    私はあるホームページを製作・運営しているのですが、どうも<a target="_top">が効かないんです…。 ほかのタグや、target="_blank"等は効くのですが、_topだけ、まったく反応しないんです。 ちなみに、こんな感じで使っています。 .... <iframe> <a target="_top" href="****.html">リンク</a> </iframe> ..... Sleipnirを使用しているので、そのせいかな?と思い、IEでも動作確認をしたのですが、反応がありませんでした…。 ところが、なぜかFirefoxでは作動すようです。 これは、私のパソコンの調子がおかしいのでしょうか? それとも、タグの記述の仕方が悪いのでしょうか? もしくは、「そういうもの」ということなのでしょうか? よろしくお願いいたします。

専門家に質問してみよう