Существует множество вопросов по этой теме, но я не видел, чтобы моя ситуация была рассмотрена, поэтому я опишу свой сценарий.
У меня есть всплывающее окно.Вы можете закрыть его двумя способами: нажав кнопку закрытия во всплывающем окне или нажав кнопку x в верхнем правом углу окна.Они имеют точно такой же эффект.Если бы я мог отключить x, я бы это сделал, но это не нужно и не произойдет в ближайшее время в вашем любимом браузере.По сути, я делаю некоторую постобработку, когда окно закрыто (на самом деле очистка сессии), и не порождаю бесконечные новые всплывающие окна, чтобы раздражать моих пользователей.Поверьте мне, клиент попросил об этом поведении.
Так что я могу сделать window.onunload или я могу сделать тело onunload и в любом случае даст мне желаемые результаты.Однако есть третий сценарий, который усложняет ситуацию.Во всплывающем окне может быть отправка формы, которая изменяет содержимое этого всплывающего окна.Если это так, то будет вызываться либо window.onunload, либо body unload, в зависимости от того, что я настроил на своей странице.Это не то, что я хочу.Я хочу, чтобы постобработка происходила после того, как всплывающее окно визуально исчезало из поля зрения (кнопка «x» или «Закрыть»), но не после пост-обработки, когда была отправлена форма, оставляя всплывающее окно визуально на этом экране.
Кто-нибудь может говорить с этим сценарием?
РЕДАКТИРОВАТЬ : Моя попытка решения, которое не вызывает window.onunload
function searchFieldTitles()
{
var searchOptionValue;
var radioObj = document.getElementsByName("searchOption");
var radioLength = radioObj.length;
for(var i = 0; i < radioLength; i++) {
if(radioObj[i].checked) {
searchOptionValue = radioObj[i].value;
break;
}
}
$.get("/myroot/SearchFieldTitles.action",
{filterString: document.getElementsByName("filterString")[0].value,
searchOption: searchOptionValue,
filterBy: document.getElementsByName("filterBy")[0].value},
function(data) {
});
location.href="/myroot/jsp/field_titles/lookupFieldTitles.jsp";
}