У меня есть приложение, которое имеет «родительское» окно. В родительском окне есть пункты меню, такие как следующий (с использованием PHP здесь):Стойкие данные с Javascript
// sample link
echo "<li><a href=\"#\" onclick=openurl('covershift.php');>Shift Coverage</a></\
li>";
// logout link
echo "<li><a href=\"#\" onclick=openurl('logout');>Logout</a></li>";
Каждая ссылка открывает соответствующую страницу в другом окне «ребенок». Когда родительский элемент закрывается, все дочерние окна должны закрываться. Я реализовал эту функциональность с Javascript, здесь есть функция:
var childWindow = new Array();
var windowCount = 0;
function openurl(url)
{
if(url != 'logout') {
childWindow[windowCount]=window.open(url,'_blank','height=600,width=800,scr\
ollbars=1');
windowCount++;
if (window.focus) {
childWindow.focus();
}
} else {
var iCount;
for (iCount=0; iCount < windowCount; iCount++) {
if ((childWindow[iCount] != null) && !(childWindow[iCount].closed)) {
childWindow[iCount].close();
}
}
window.location='logout.php';
}
}
Вот моя проблема, когда пользователь перезагружает родительское окно, а затем нажимает выход из системы, дочерние окна остаются открытыми. Это имеет смысл, поскольку массив childWindow теряется при перезагрузке родителя.
Как я могу сделать массив childWindow постоянным через перезагрузку?
Спасибо!
Джонатон, Спасибо за быстрый ответ. Оба решения имеют свои достоинства. Первое хорошо, потому что оно требует модификации только в одном месте. Единственное, что я могу предвидеть с помощью первого решения, - это то, что пользователь может захотеть сохранить свои данные в дочерних окнах и просто перезагрузить родительское окно. Второе решение, вероятно, не будет работать из-за поведения пользователя. Пользователи моего приложения печально известны только щелчком кнопок и, следовательно, могут случайно закрыть родителя и вызвать меня с сообщением об ошибке :-). Если нет способа сделать данные персидскими, я поеду с опцией 1. Спасибо! –