OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

iFlame2つを同時に書き換えるには?

  • すぐに回答を!
  • 質問No.207144
  • 閲覧数128
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

一つのファイルに、IE専用のフレームタグのiFlameで2つのフレームを埋め込んでいて、一つが操作画面でもう一つが情報画面という風にしています。

この時、操作フレームでリンクをクリックすると、2つ同時に画面が変わるというものを作りたいと思っています。

一つならば、TARGET指定でリンクさせることができるのですが、同時に2つというやり方がわかりません。是非、お力をお貸し下さい。よろしくお願い致します。

//////////////////iFlameが2つ埋め込まれている画面
<HTML>
<HEAD>
<TITLE>●画面全体</TITLE>
</HEAD>
<BODY>
●メイン画面
<iframe src="index_main.html" name="main"></iframe><br><br>
●操作画面
<iframe src="index_control.html" name="control"></iframe>
</BODY>
</HTML>



//////////////////操作ボタンのあるiFlameのページ
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function Syncro(mPage,cPage){
main.location=mPage;
control.location=cPage;
}
</SCRIPT>
</HEAD>
<BODY>

<A HREF="Javascript:Syncro('main2.html','control2.html')">両方のWINDOWを書き換える</A><BR>

</BODY>
</HTML>
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル6

ベストアンサー率 25% (3/12)

こんにちわ!
ちょうど参考文献があったので、

>>main.location=mPage;
>>control.location=cPage;

の部分なのですが、

parent.main.location.href=mPage;
parent.control.location.href=cPage;

にしてみてはいかがでしょう?

parent=現在のフレームの親フレームの意味
 ||
ここをtop(最初に定義されたフレーム)やself(自分自身のフレーム)に設定することも可能だそうです♪
補足コメント
noname#107402

ありがとうございます。しかし、
残念ながら上手くいきませんでした。スペル違いは無いと思いますが、

parent.main.location=mPage;
parent.control.location=cPage;

も動きません。。なぜでしょう??
投稿日時 - 2002-01-28 16:16:46
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.2
レベル9

ベストアンサー率 46% (23/49)

操作ボタンのあるiFlameのページの記述を <SCRIPT language="JavaScript"> function Syncro(mPage,cPage){ parent.frames["main"].location=mPage; parent.frames["control"].location=cPage ...続きを読む
操作ボタンのあるiFlameのページの記述を
<SCRIPT language="JavaScript">
function Syncro(mPage,cPage){
parent.frames["main"].location=mPage;
parent.frames["control"].location=cPage;
}
</SCRIPT>

になります。子フレームから指定する場合、こういう風にparent(親)から書いていけばOKです。

また、クリックする場所は始めのものでも大丈夫ですし、
<A HREF="Javascript:Syncro('main2.html','control2.html')">test</a>
こういう書き方もありますね。
補足コメント
noname#107402

ありがとうございます。
しかしながら、動作しないようです。???

<a href="main2.html" target="main">操作する</a>

では、動作するのでオブジェクトとしては、Windowでしょうか?いずれにしても困っております。
投稿日時 - 2002-01-28 18:00:46
  • 回答No.3
レベル6

ベストアンサー率 25% (3/12)

再登場aisです♪ 私も試してみました! で、変数を使う形はやはり失敗してしまって。 (すいません、あいまいなアドバイスになってしまって) でも直接URL指定してあげたらちゃんと動いてくれましたよ♪ >>function Syncro(mPage,cPage){ function Syncro(){ >>main.location=mPage; pa ...続きを読む
再登場aisです♪

私も試してみました!
で、変数を使う形はやはり失敗してしまって。
(すいません、あいまいなアドバイスになってしまって)
でも直接URL指定してあげたらちゃんと動いてくれましたよ♪

>>function Syncro(mPage,cPage){
function Syncro(){

>>main.location=mPage;
parent.main.location.href="http://www.URL1";

>>control.location=cPage;
parent.control.location.href="http://www.URL2";

>>}

<A HREF="Javascript:Syncro()">両方のWINDOWを書き換える</A>

でどうでしょう??
補足コメント
noname#107402

一応報告させて下さい。
皆様のお力添えで、上手く動作するようになりました。本番では、name属性でscreenという名前を使っていたために動作しなかったようです。(お馬鹿)

ありがとうございました。
投稿日時 - 2002-01-29 10:30:17
お礼コメント
noname#107402

ありがとうございます。
簡単にテストをすれば、変数の方法でも動きました。でも、本番用に埋め込むと動きません。謎な状況に追い込まれています(笑)
投稿日時 - 2002-01-29 10:05:53
  • 回答No.4
レベル12

ベストアンサー率 75% (398/526)

フレームの階層概念と、オブジェクト/プロパティをよく理解されれば解決するでしょう。 まず、フレームの階層は次のようになっていることと思います。   画面全体のHTML   ├index_main.html   └index_control.html この時、全体画面HTMLからは、それぞれのフレームに「main」「control」でアクセスできます。 また、それぞれのインラインフレーム内の ...続きを読む
フレームの階層概念と、オブジェクト/プロパティをよく理解されれば解決するでしょう。

まず、フレームの階層は次のようになっていることと思います。
  画面全体のHTML
  ├index_main.html
  └index_control.html
この時、全体画面HTMLからは、それぞれのフレームに「main」「control」でアクセスできます。
また、それぞれのインラインフレーム内のHTMLから全体画面HTMLは、「parent」でアクセスできます。
(直接の親子関係にあるので、parentの代わりに「top」を指定するのはやめましょう。)
これを組み合わせると、たとえばindex_main.htmlからindex_control.htmlへは、「parent.control」でアクセスできることになります。(逆も然り)

次に「location」についてですが、これは「オブジェクト」であり、URLを表すプロパティではありません。
URLを指定する場合は、「hrefプロパティ」に対して行います。

と言うわけで、関数を次のように直せば動きます。(動作確認済み)
  function Syncro(mPage,cPage){
    parent.main.location.href = mPage;
    parent.control.location.href = cPage;
  }
(コピペする際は、全角スペースに注意)
お礼コメント
noname#107402

ありがとうございます。
なるほどです。どれがオブジェクトでどれがプロパティか、ということを把握していませんでした。
投稿日時 - 2002-01-29 10:10:52
  • 回答No.5
レベル9

ベストアンサー率 46% (23/49)

leaz024さん、そうですね。hrefが正しかったです^^;すみません。 ただ、わたしのスクリプトも、IE5、NN4.78で動作確認済みでした。 サーバーにあげても動きます。OSはwin2000です。 ということで、funaさんお手数ですが、動作確認に使われたOSとブラウザのバージョンを教えていただないでしょうか? 気になりますので、よろしくお願いいたします。 ...続きを読む
leaz024さん、そうですね。hrefが正しかったです^^;すみません。

ただ、わたしのスクリプトも、IE5、NN4.78で動作確認済みでした。
サーバーにあげても動きます。OSはwin2000です。

ということで、funaさんお手数ですが、動作確認に使われたOSとブラウザのバージョンを教えていただないでしょうか?
気になりますので、よろしくお願いいたします。
お礼コメント
noname#107402

ありがとうございます。
ちょうど今、書き込みをしたのですが、私のトラブルの原因は、name属性にふさわしくない語を指定した為動かなくなっていました。

alert(parent.screen.location);

などでundefineなどで値が出なかったので、変更すれば動きました。ちなみにIE5.5、WIN2000を使っていました。

勉強になりました。ありがとうございました。
投稿日時 - 2002-01-29 10:39:24
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ