2017-09-07 20 views
0

.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と同じコードです。

+0

異なるドメインの2つのページはありますか?私は本当に "asp"対 "aspx"がここで重要な要因であるとは思わない。 「これは現在JavaScriptで利用できません」 - これはどういう意味ですか?あなたはそれを試したとき何が起こったのですか? –

+0

同じドメインと私はどちらも異なると見ていませんでした。しかし、トップフレームのコードは以前と同じ機能を呼び出しています。メニューページが.aspから.aspxに変更されただけです(前と同じ関数と変数)。 「使用できません」とは、過去に行ったような「それらの」関数や変数を参照すると、結果が「未定義」です。 – Velocedge

+0

実際のコードを見る必要があると思います。 –

答えて

0

まあ...私は愚かだと感じる! JavaScriptは.jsファイルにあり、デバッガでコードが表示されていましたが、何らかの理由でそのコードに到達できませんでした。私は、次のように使用してコードが働いた:

<script src="<%=ResolveUrl("~/include/scripts.js")%>" type="text/javascript"></script> 

私は前にResolveUrlを使用して、ハードの場所にコーディングされていません。

関連する問題