Откройте всплывающее окно и обновите родительскую страницу при закрытии всплывающего окна
Я открыл окно, всплывающее окно.откройте в JavaScript, я хочу обновить родительскую страницу, когда я закрываю это всплывающее окно.(события onclose?) как я могу это сделать?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
11 ответов:
во всплывающем окне нет события закрытия, которое можно прослушать.
С другой стороны, есть свойство, которое имеет значение 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);
посмотреть этот рабочий пример скрипки!
на странице вашего ребенка, поставьте эти:
<script type="text/javascript"> function refreshAndClose() { window.opener.location.reload(true); window.close(); } </script>
и
<body onbeforeunload="refreshAndClose();">
но как хороший дизайн пользовательского интерфейса, вы должны использовать вблизи
button
потому что это более удобно для пользователя. смотрите код ниже.<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()''>
когда окно закрывается, оно обновляет родительское окно.
Если ваше приложение работает в браузере с поддержкой HTML5. Вы можете использовать postMessage. Приведенный там пример очень похож на ваш.
в моем случае я открыл всплывающее окно при нажатии на linkbutton в родительской страницы. Чтобы обновить родителя при закрытии ребенка с помощью
window.opener.location.reload();
в дочернем окне вызвано повторно открыть дочернее окно (может быть, из-за состояния просмотра я думаю. Поправьте меня, если я ошибаюсь). Поэтому я решил не перезагружать страницу в parent и снова загрузить страницу, назначив ей тот же url-адрес.
не открывать всплывающие снова после закрытия всплывающего окна, это может помочь,
window.onunload = function(){ window.opener.location = window.opener.location;};
попробуй такое
self.opener.location.reload();
откройте родительский элемент текущего окна и перезагрузите расположение.
вы можете добраться до главной страницы с помощью команды parent (parent-это окно)после шага, который вы можете сделать все...
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 + ""); }