2012-08-09 11 views
0

고객은 데이터 격자에 변경된 사항을 감지하는 탐색 기능이있는 페이지가 있으며 페이지를 떠나기 전에 데이터를 저장하라는 메시지를 표시합니다. 사용자가 자신이하는 일에 대해 혼란스러워하거나 많은 데이터 입력 오류를 범했다고 의심되면 변경 사항을 취소하고 다시 시작할 수도 있습니다.하위 자바 스크립트 데이터에 대한 부모 액세스

고객은 iframe을 통해 이러한 페이지를 배치하는 로그인 시스템을 보유하고 있습니다. 로그인 시스템은 하위 페이지 자체의 페이지 내비게이션을 대체하여 이러한 페이지를 탐색 (iframe으로 호출)하는 새로운 하위 메뉴를 갖게됩니다.

이 페이지의 눈금은 플래그를 설정하여 하나 이상의 눈금 셀에 표시된 데이터가 변경되었습니다. 페이지 탐색에서 플래그를 확인하고 사용자에게 그리드 중 하나에서 데이터를 저장하지 않았 음을 상기시키는 데는 아무런 문제가 없습니다.

부모 페이지의 메뉴가 자식 페이지의 격자에 의해 이러한 플래그가 설정되었는지 어떻게 확인합니까? 플래그는 현재 배열에 있으며 그리드의 번호는 인덱스입니다.

대부분의 세포는이 작업을 수행하거나이 기능

-------------------------------------------------------- 
. . . onchange='make_input_changed(grid_NM)' . . . 

------------------------------------------------------- 

// up to 6 grids on page in this example. 
var input_changed = new Array('false', 'false', 'false', 'false', 'false', 'false'); 

// for each grid, set a flag indicating that data on the current grid page has changed 
function make_input_changed(grid_NM) { input_changed[grid_NM] = true; } 


----------------------------------------------------- 

호출하는 다른 함수를 호출 할 수 있습니다 부모 액세스 자식 플래그?

** 자식이 부모 함수를 호출하여 변경 사항을 추적 할 수 있습니까?

답변

1

프레임은 단지 '특별'창입니다.

window.top 또는 window.parent을 사용하면 창과 프레임의 계층 구조를 탐색 할 수 있습니다. 프레임이 동일한 도메인에있는 한 확인해야합니다.

당신은 다른 프레임에서 변수를 액세스 할 수 있습니다

parent.Frame2.varInFrame2 = 100; 

... 당신이 다른 프레임에서 함수를 호출 할 수 있습니다 :

parent.Frame2.notifyLogin(id) 
관련 문제