Я открыл окно, всплывающее окно.открыть в JavaScript, я хочу, чтобы обновить родительскую страницу, когда я закрыть всплывающее окно.(события onclose?) как я могу это сделать?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
Вы можете получить доступ к родительскому окну через 'окна.открывалка', поэтому, писать что-то вроде следующего в окне ребенка:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
Всплывающее окно не имеет какие-то близкие события, которые можно послушать.
С другой стороны, есть закрытые свойство, которое имеет значение true, если окно закрывается.
Вы можете установить таймер, чтобы проверить, что закрыты собственность и сделать ее такой:
var win = window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no");
var timer = setInterval(function() {
if(win.closed) {
clearInterval(timer);
alert('closed');
}
}, 1000);
Видите эту [рабочая скрипку Пример][1]!
на странице вашего ребенка, поставьте эти:
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
и
<body onbeforeunload="refreshAndClose();">
но как хороший дизайн пользовательского интерфейса, вы должны использовать кнопку Закрыть `потому что это's более удобным для пользователя. см. код ниже.
<script type="text/javascript">
$(document).ready(function () {
$('#btn').click(function () {
window.opener.location.reload(true);
window.close();
});
});
</script>
<input type='button' id='btn' value='Close' />
Я использую этот:
<script language='javascript'>
var t;
function doLoad() {
t = setTimeout("window.close()",1000);
}
</script>
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
<body onbeforeunload="refreshAndClose();" onLoad='doLoad()''>
когда окно закроется, тогда он обновляет родительского окна.
окна.открыть возвращает ссылку на вновь созданное окно, при условии, URL-адрес открыт соответствует же политику происхождения.
Это должно работать:
function windowClose() {
window.location.reload();
}
var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;
В моем случае я открыл всплывающее окно при нажатии на linkbutton в родительской страницы. Для обновления родителя о закрытии ребенка, используя
window.opener.location.reload();
в окне ребенка возникают вновь открытом окне ребенка (может быть из-за зрения государства наверное. Поправьте меня, если я ошибаюсь). Поэтому я решил не перегружать страницу родителя и загрузите страницу вновь назначая же URL-адрес к нему.
Во избежание повторного открытия всплывающего окна после закрытия всплывающего окна, это может помочь,
window.onunload = function(){
window.opener.location = window.opener.location;};
Если ваше приложение работает на браузерах с поддержкой технологии HTML5. Вы можете использовать метод postMessage. Пример, приведенный там очень похож на ваш.
Вы можете использовать ниже код в родительской страницы.
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
Вы можете достичь главной страницы с родительской команды (родительское окно) после шаг можно сделать все...
function funcx() {
var result = confirm('bla bla bla.!');
if(result)
//parent.location.assign("http://localhost:58250/Ekocc/" + document.getElementById('hdnLink').value + "");
parent.location.assign("http://blabla.com/" + document.getElementById('hdnLink').value + "");
}
Следующий код сумеет обновить родительское окно после закрытия :
function ManageQB_PopUp() {
$(document).ready(function () {
window.close();
});
window.onunload = function () {
var win = window.opener;
if (!win.closed) {
window.opener.location.reload();
}
};
}