Я відкрив спливаюче вікно за window.open у JavaScript, я хочу оновити батьківську сторінку, коли закрию це спливаюче вікно. (Подія onclose?) Як я можу це зробити?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
Я відкрив спливаюче вікно за window.open у JavaScript, я хочу оновити батьківську сторінку, коли закрию це спливаюче вікно. (Подія onclose?) Як я можу це зробити?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
Відповіді:
Ви можете отримати доступ до батьківського вікна, використовуючи ' window.opener ', отже, напишіть щось на зразок наступного у дочірньому вікні:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
popupWindow.closed
використовуючи setInterval
як у рішенні @ Zuul.
У спливаючому вікні немає жодної близької події, яку ви можете прослухати.
З іншого боку, є властивість closed, яка встановлюється на 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();">
але як хороший дизайн інтерфейсу користувача, ви повинні використовувати Close, 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()''>
коли вікно закривається, воно оновлює батьківське вікно.
window.open поверне посилання на новостворене вікно за умови, що відкрита URL-адреса відповідає Політиці того самого походження .
Це має працювати:
function windowClose() {
window.location.reload();
}
var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;
У моєму випадку я відкрив спливаюче вікно, натиснувши кнопку посилання на батьківській сторінці. Оновити батьків після закриття дитини
window.opener.location.reload();
у дочірньому вікні призвело до повторного відкриття дочірнього вікна (можливо, це пов'язано зі станом перегляду. Виправте мене, якщо я помиляюся). Тому я вирішив не перезавантажувати сторінку у батьківському режимі і завантажувати сторінку знову, призначаючи їй ту саму URL-адресу.
Щоб уникнути повторного відкриття спливаючого вікна після закриття спливаючого вікна, це може допомогти,
window.onunload = function(){
window.opener.location = window.opener.location;};
Якщо ваша програма працює у браузері з підтримкою HTML5. Ви можете використовувати postMessage . Наведений там приклад досить схожий на ваш.
Ви можете перейти на головну сторінку за допомогою батьківської команди (батьківською є вікно), після кроку ви можете зробити все ...
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 + "");
}