- PR -

他ページの関数を呼ぶ

1
投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-11 18:41
お世話になります。C#.NETでWeb開発しております。
いろいろ探したのですが、わからず申し訳ありませんが、ここでJavaScriptについて質問させてください。

上下に分かれたFrame(top、buttom)があり、topに配置されたHTMLボタンクリックで
buttomの関数を実行したいのですがどのようにしたらよいでしょうか?

本で調べると、サブウィンドウ←→親ウィンドウの関数呼び出しは記述してあったのですが、フレーム間は乗っていませんでした。可能でしょうか?
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-05-11 21:42
可能です。

「サブウィンドウ←→親ウィンドウの関数呼び出し」と同様に、
要はその関数が宣言されているwindowオブジェクトを取得できればよいはずです。

# 以下、追記。

ちょっと不親切でしたね。
同一ウィンドウ上の別フレームは、
 window.parent.frames["xxx"](自分フレームの、親の、子フレーム)
と、参照するのが一般的だと思います。
フレームの分割次第では、
 window.top.frames["xxx"](自分フレームの、トップの、子フレーム)
と、なるかも知れませんが。

# 蛇足ですが、
# window.parent.frames.xxxとかwindow.parent.xxxとかwindow.parent["xxx"]
# でも取得できます。
 


[ メッセージ編集済み 編集者: He 編集日時 2004-05-11 22:01 ]
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-12 09:05
ありがとうございます。
window.parent.frames["xxx"]
で取得できました。

追加で質問なのですが、
今度はサーバ側で別のページのボタンなどのプロパティを変更するにはどのようにしたらよろしいでしょうか?
とりあえず、

ページ名 main_page = new ページ名

で取得して、
main_page.Button1
としてもウォッチでは未定義の値となっています。
あとなにを設定すれば自由に設定できるのでしょうか?

重ねがさねお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-12 09:53
引用:

BB.NKさんの書き込み (2004-05-12 09:05) より:

追加で質問なのですが、
今度はサーバ側で別のページのボタンなどのプロパティを変更するにはどのようにしたらよろしいでしょうか?


 クライアントに、そのページをリクエストしてもらいます。


 まず、ASP.NETの、本質的な動作を知ってください。
参考:@IT連載 プログラミングASP.NET
 ページオブジェクトは、動作している瞬間だけ、生きています。もし、あるページのサーバサイドコードで別のページをnewしても、そのオブジェクトはクライアントにあるオブジェクトとまったく関係がありません。クライアントが表示している「ページ」は、すでにサーバ側では破棄されています。

 Windowsアプリケーションと同じような作り方はできません。似て非なる技術が必要です。
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-05-12 12:03
ありがとうございます。
しばらく触らないうちにさっぱり忘れていました。

Javascriptのhiddenをつかって、実装できました。

呼び出し元ページにて、
main = window.parent.frames["main"];
if(document.Form1.xxx_hidden.value == "true")
{
  main.page_load(true);
}
else
{
  main.page_load(false);
}
変更されるページにて、
function page_load(bool)
{
  if(bool == "true")
  {
    button1.disabled == false;
  }
  else
  {
    button1.disabled == true;
  }
}
として、ロード時に実行しました。
ありがとうございました。
この関数の呼び出しタイミングなど結構面倒ですね。。。
1

スキルアップ/キャリアアップ(JOB@IT)