0

フレームセットに 2 つのページがあり、最初のページには Javascript 関数があり、2 つ目はボタン付きの asp.net フォームです。ユーザーがボタンをクリックしたときに、最初のページで Javascript 関数を呼び出す必要があります。 :

私は試しています:

ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script language=JavaScript>parent.frames[0].Function('parameter')</script>");

アラートがあります('...'); 関数内ですが、それを呼び出しても何も表示されません。明らかに関数は実行されていません。

関数を呼び出すにはどうすればよいですか? ヘルプとアドバイスをありがとう。

4

2 に答える 2

1

FireBug (Firefox の場合、または他のブラウザーの場合は FireBug Lite を使用)使用して、各フレームに含まれる実際の HTML とスクリプトを確認してください。
コードが ASP.net で正しく作成されたと判断したら、引き続き FireBug を使用して、ブレークポイントを使用してスクリプト コードのどこが間違っているかを確認します。
より迅速なアイデアが必要な場合は、関数を呼び出す前に配置したコードでいくつかのテストを使用してみてください。これを試してください。

alert(parent.frames.length);
alert(parent.frames[0].Function);
parent.frames[0].Function('parameter');
于 2009-10-29T11:03:13.613 に答える
0

Dror、時間のかかる面倒な問題を乗り越えてくれて、どうもありがとう!

インデックスに加えてフレームの名前を使用できるように見えることを追加してもいいですか (これが明らかな場合は、許してください)。

親 htm:
        :
    <frameset rows="120,*">
        <frame name="OverviewFrame" id="OverviewFrame" src="eoverview.htm">
        <frame name="LegendFrame" id="LegendFrame" src="">
    </frameset>
    <frameset cols="50%,50%">
        <frame name="ControlsFrame" id="ControlsFrame" src="zoomcontrols.htm">
        <frame name="InsetControlsFrame" id="InsetControlsFrame" src="insetcontrols.htm">
    </frameset>
        :

フレーム htm (insetcontrols.htm):
    parent.frames['OverviewFrame'].enableSync(false);

( eoverview.htm には function が含まれています)enableSync(bool)

FF3.6.3、Chrome 4.1.249.1064、Safari 4.0.5、Opera 9.80、IE 8、IE 8 互換モードでテスト済み

于 2010-05-04T15:08:17.520 に答える