• ベストアンサー

ロード時に別フレームの関数を実行したい

sightの回答

  • ベストアンサー
  • sight
  • ベストアンサー率53% (199/370)
回答No.1

JavaScriptの関数を呼ぶときにオブジェクトの階層構造を全部書いてもだめですか? window.parent とか window.top などのオブジェクトを使って、フレームセットを定義しているページのオブジェクトにアクセスします。 たとえば、ロードしたページの親フレームセットで、 ロードしたページがleft、関数changeImg()のあるページがrightとNAME属性を定義されていたとしたら、 BODYのonLoadイベントでwindow.parent.right.changeImg()を呼んであげればいいと思います。

cat_tomato
質問者

お礼

ああ、すみません。 下の構文でちゃんとできました。 window.top.right.changeImg() ありがとうございました。

cat_tomato
質問者

補足

早速の回答、ありがとうございます。 おっしゃるとおり、onRoadイベントに書いたのですが、 window.top.right.changeImg(引数いっぱい) window.top.rightがNullだというエラーが出てしまいます。 2段フレームなので、 window.parent.parent.right.changeImg(引数いっぱい) ってことなのかな?

関連するQ&A

  • フレームの実行について

    今日は。 フレームについてなのですが、Flash の処理として、フレームが飛ばされて実行される事はあるのでしょうか? つまり、例えばフレーム1とフレーム2にスクリプトがあったとして、フレーム1のスクリプトが実行されて、その後処理の関係でフレーム落ちしてフレーム3に行ってしまい、結果としてフレーム2のスクリプトが実行されない事はあるのでしょうか? 現在、そうとしか考えられない状況が発生しておりまして、困っております。よろしくお願い致します。

  • 別フレームの.cssの変更

    こんにちは。 javascriptを使って.cssファイルを切り替えることにかんしてのしつもんです。 左フレームと右フレームがあって、 右のフレームに表示されているページのボタンとか文字とかをクリックすると、関数が呼び出されて、左フレームに表示されているページの.cssファイルを切り替えるようなscriptは、どう記述すれば、いいですか?

  • 同期をとる

    たびたびすみません。 下の質問もいろいろ試みていますが、なかなかできません。 そこで、別の手なのですが。 フレーム間で関数の同期をとることは可能でしょうか? フレームAには ・プリロード関数(Load時) ・画像切り替え関数(クリック時) の二つがあります。 フレームBには ・Load時にフレームAの画像切り替え関数を呼ぶ と記入してあります。 この状態でロードすると、フレームAのプリロード関数よりもフレームBの方が早くLoadしてしまい、プリロードが完了していないのに、画像切り替え関数が走ってしまうので、エラーになってしまいます。 この現象を回避したいのですが、なかなか方法が見つかりません。 どなたか知恵を貸してください。 毎度毎度すみません。 よろしくお願いいたします。

  • 別のフレームに画像を表示させる

    検索をかけてみたのですが、同じ質問は見付からず 似た(?)ような質問の回答では理解出来ないので どなたかご存知の方が居ましたらお願い致します マウスを乗せた時、他の画像を表示させたり、画像に効果をつける ロールオーバーという機能の仲間なのではないかと思うのですが 「マウスを乗せた時、別のフレームに画像を表示させる」事は可能なのでしょうか? フレームを上下に分けて、上は写真のサムネイルで そのサムネイルにマウスを乗せた時に 下のフレームに大きめの、サムネイルとは別の画像を表示させたいのですが やり方が判りません。 ロールオーバーも使った事がなかったのですが やってみたら(基本の効果は)、そこそこ理解出来ました。 フレームも最近覚えた初心者ですので、スクリプトも良く判りません (作られたソースを貼る位しか出来ません・・・・) 宜しくお願い致します

  • 別フレームに画像を表示する

    こんにちは。 今、フレームセットの上にメニューバー、下にコンテンツ内容があるといったページを作っています。 上フレームにあるメニューボタンを押すと下フレームのページが切り替わるのですが、同時に上フレームにコンテンツごとの画像を表示したいのです。 はじめはメニューボタンをクリックするのと同時に画像のレイヤーを表示するスクリプトを記述していたのですが(hideとshowでその都度入れ替え)、それではキーボードのBackspaceボタンで戻ったとき上フレームの画像が前のコンテンツ画像のまま残ってしまいます。つまり上フレームのボタンを押さないとレイヤーが切り替わらないというわけです。 下フレーム内に入るページを表示するたびに上フレームの画像を表示するといったスクリプトをしたフレーム内のページのBODY要素にonloadとして記述すればよいのでしょうか? またどのように記述すればよいのかもわかりません。 わかる方がいらっしゃいましたらどうか宜しくお願いします。

  • formをもう一度Loadする方法

    form1をLoadした後 別のページに移動後またform1に戻ってきた場合 もう一度ロードするにはどうしたらいいでしょうか? 例えば、画面1で画像をクリックして消すとします。 そのページから画面2に行きまた画面1に戻った時に、ここでまたフォームをロードをして画像が消える前にしたいのです。 ロードで宣言はしているのですがうまくいきません。 調べたのですが調べ方が悪いのかまったく答えが見つかりませんでした。 お願いします。

  • 片フレームで実行中だと、うまく処理されない。

    <FRAMESET ・・・> <FRAME SRC="XXX.HTML" ・・・> <FRAME SRC="READ.ASP" ・・・> <FRAME SRC="UPDATE.ASP" ・・・> </FRAMESET> 上のような3フレーム構成で、 "UPDATE.ASP"ではA.TXTの更新処理(1分ほどかかります)を、 "READ.ASP"では5秒間隔に"XXX.HTML"よりコールされ、 A.TXTの行数(更新状況)を表示しています。 しかしこれを実行してみると、"READ.ASP"のレスポンスが返ってきません。 (ずっと実行されているような状況です) "UPDATE.ASP"で処理がサーバーが重たくなってしまう(ビジー状態になってしまう)ため、 レスポンスが返ってこないのかな?とも考えたのですが、 "UPDATE.ASP"を単体で実行しても、多少のCPU負荷率がかかる程度で、 ビジー状態にはなりません。 もしかしたら、フレーム分割で複数の画面でASPスクリプトを同時に やってしまうことに原因があるのでしょうか? 何かわかることありましたら、アドバイスお願い致します。

  • 別フレームのロールオーバー

    別画面のロールオーバーの質問で、 document.FRAME名.Image[0].src = 'file.jpg'; というタグを使うのは分るのですが、 ホームページビルダーのソフトの仕様か、未だ出来ずにいます。 /////////////////////////////////////////////////////////// フレームは以下の構造になっています。 ●A.html にインラインフレームを二つ配置 ・フレーム1=B.html 解説画像表示 ・フレーム2=C.html サムネイル画像配置 フレーム2にサムネイル画像を配置して、 フレーム1にロールオーバーで解説画像を入れる こんなことをしたいです。 フレーム1,2それぞれどのようなタグ記載で実現できるでしょうか? フレームを二つ収納しているA.htmlの関連はありますか?

  • もうひとつ質問です。別フレームの背景色を変化させたい

    前とは別の質問なのですが 別フレームの背景色を変えるリンクというのは作れますか? ラジオボタンや、リストボックスではなくて、画像もしくは文字をクリックすると別のフレームの背景色が変化するというものです。 さらにわがままを言えば、クリック後にその画像を他の画像にすることができるなら、それも教えて欲しいです。 でも前者だけでもいいです! あらかじめ変化後用のHTMLを用意するというのはなるべく無しでおねがいします。 IE6を使っています。

    • ベストアンサー
    • HTML
  • クリッカブルマップで別フレームにランダムに画像を表示する方法

    クリッカブルマップでクリックするごとに別フレームに複数の画像をランダムに表示させることは可能でしょうか。 具体的にどんなことがしたいかというと、 格闘ゲーム風のキャラクターセレクト画面(1枚の画像)でキャラクターアイコンをクリックすると別のフレームにキャラクターを表示、 ランダムアイコンをクリックすると同じく別のフレームにランダムにキャラクターを表示させたいのです。 前者はなんとかできたんですが、複数ランダムとなるとどうすればいいのかわからず; 色々と調べてはみたのですが思わしいのがなく、 さらに当方それなりのHTML知識しかなく恐らくjavascriptを使うのではと思い、こちらで質問させていただいた次第です。 どなたかお分かりになられる方、助言いただければ幸いです。