2017-09-07 11 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> 

자바 스크립트, index.asp. 이것은 onload 이벤트에 idx_menu.aspx에 의해 호출되기 때문에이 호출 될 때 문서가로드됩니다

var swfVersion = ''; 

function pageLoaded() { 
    top.menuLoaded(); 
} 
function idxDisplayMenu(message) { 
alert(message); 
} 

에서 .aspx은 다음과 같습니다 메뉴 프레임에서

function menuLoaded() { 
self.menu.idxDisplayMenu(''); // error with undefined 
top.menu.idxDisplayMenu(''); // same error 
top.menu.swfVersion = '5'; // also an error 
} 

자바 스크립트 idx_menu.aspx, 이 예제와 관련하여 이전 idx_menu.asp와 동일한 코드입니다.

+0

다른 도메인의 두 페이지입니까? 나는 정말로 "asp"대 "aspx"가 중요한 요소 인 것으로 여기에서 보지 않는다. "이제는 JavaScript에서 사용할 수 없습니다."- 정확히 무엇을 의미합니까? 그걸 시도했을 때 무슨 일이 있었 니? –

+0

동일한 도메인과 나는이 둘을 다른 것으로 보지 못했습니다. 그러나 상단 프레임의 코드는 이전과 같은 기능을 호출합니다. 메뉴 페이지가 .asp에서 .aspx로 변경된 것입니다 (이전과 같은 함수 및 변수). "사용할 수 없음"은 과거에했던 것처럼 "해당"함수 또는 변수를 참조 할 때 결과가 "정의되지 않음"을 의미합니다. – Velocedge

+0

실제 코드를 볼 필요가 있다고 생각합니다. –

답변

0

음 ... 나는 어리 석다. JavaScript는 .js 파일에 있었고 디버거에서 코드를 볼 수는 있지만 어떤 이유로 든 도달하지 못했습니다. 나는 다음을 사용하고 코드가 작동 : 내가 전에 때 ResolveUrl을 사용하여 하드 위치를 코딩되지 않은

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

.