2012-08-09 3 views
0

Клиент имеет страницу с навигацией, которая обнаруживает, когда были внесены изменения в сетку данных, и напоминает пользователю сохранить свои данные до того, как они покинут страницу. Если пользователь путается с тем, что они делают или подозревает, что они совершили много ошибок ввода данных, они могут также просто отменить свои изменения и начать все заново.Родительский доступ к дочерним данным javascript

Клиент имеет систему входа в систему, в которой они размещают эти страницы, используя iframes. Система входа в систему должна иметь новое подменю для навигации по этим страницам (вызывать их в 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) 
Смежные вопросы