みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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でもできるようにしたいのですが、どのようにすればよいでしょうか?
よろしくお願いします。

投稿日時 - 2008-03-21 23:20:13

QNo.3883487

困ってます

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

Javascriptではなかったようですね。

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

投稿日時 - 2008-03-22 11:14:01

補足

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

投稿日時 - 2008-03-22 11:37:03

お礼

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

投稿日時 - 2008-03-22 11:29:26

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.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規定のことではなく、昔から使われている業界標準のことです。

投稿日時 - 2008-03-22 13:37:17

お礼

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

投稿日時 - 2008-04-07 08:27:04

未検証
Internet Options->Security->Custom Level->Navigate Sub-frames across different domains
はどうか?

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

投稿日時 - 2008-03-22 12:02:19

お礼

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

投稿日時 - 2008-03-22 13:11:51

ANo.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時には切り替えができませんので根本的な解決にはなっていないとは思いますけど・・・

投稿日時 - 2008-03-22 11:11:01

お礼

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

投稿日時 - 2008-03-22 13:05:25

ANo.2

#1です。
さっきの回答はちゃんと状況を読んでなかった…
Javascriptの制限のハナシはFirefoxでも同じ事ですのでFirefoxでうまく動くなら要因は別のところにありそうです。

それでもJavascript部分が気になる点は変わらないので
どんなJavascriptか補足してみてください。

投稿日時 - 2008-03-22 09:31:00

お礼

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>
のことを言っています。
ちなみに一応この部分をはずしてやってみましたが、変わりませんでした。
基本的に指定リンク先は同一サイト以外でもかまわないのでしょうか?
ご回答ありがとうございました。

投稿日時 - 2008-03-22 09:56:32

ANo.1

元の質問に「Javascript を一部使っています」
とありますが、これが気になります。
別URLが絡んだ為にJavascriptエラーになっているのかもしれません。

Javascriptではセキュティ上の理由で別ドメインのページにアクセスできないという制約があります。
親ページからiframe内のページの内容を参照したり書き換えたりしようとするJavascriptならそういう現象になると思います。

投稿日時 - 2008-03-22 09:20:39

あなたにオススメの質問