.aspクラシックページを含むフレームセットと.aspxページを含むフレームセットがあります。 JavaScriptを使用して、 "トップフレーム"から "メニューフレーム"内の.aspxの関数と変数にアクセスしたいとします。 "メニューフレーム"に.aspがある場合、参照する必要があるのはself.menu.someVariableまたはtop.menu.someFunction()です。それらは現在.aspxのJavaScriptで利用できません。JavaScriptの.aspクラシックフレームから.aspxフレーム内のアクセス変数/関数
別のフレームの.aspから.aspxの関数と変数を参照するにはどうすればよいですか。 index.aspで
、トップレベル:トップフレーム内
<frameset id="colSet" >
<noframes>
</noframes>
<frame id="menu" name="menu" src="idx_menu.aspx">
<frameset id="rowSet" >
<frame name="header" src="idx_header.asp">
<frame name="command" src="idx_command.asp">
<frame name="main" src="default.asp" >
<frame name="message" src="idx_message.asp">
</frameset>
</frameset>
のJavaScript、index.asp。 .aspxの
var swfVersion = '';
function pageLoaded() {
top.menuLoaded();
}
function idxDisplayMenu(message) {
alert(message);
}
さ:メニューフレーム内のJavaScript、idx_menu.aspx
function menuLoaded() {
self.menu.idxDisplayMenu(''); // error with undefined
top.menu.idxDisplayMenu(''); // same error
top.menu.swfVersion = '5'; // also an error
}
:これはのonloadイベントにidx_menu.aspxによって呼び出されるので、これらが呼び出されたときに文書がロードされていますこの例では古いidx_menu.aspと同じコードです。
異なるドメインの2つのページはありますか?私は本当に "asp"対 "aspx"がここで重要な要因であるとは思わない。 「これは現在JavaScriptで利用できません」 - これはどういう意味ですか?あなたはそれを試したとき何が起こったのですか? –
同じドメインと私はどちらも異なると見ていませんでした。しかし、トップフレームのコードは以前と同じ機能を呼び出しています。メニューページが.aspから.aspxに変更されただけです(前と同じ関数と変数)。 「使用できません」とは、過去に行ったような「それらの」関数や変数を参照すると、結果が「未定義」です。 – Velocedge
実際のコードを見る必要があると思います。 –