孩子失去了父母!!
我有一个父窗口,当有人点击图像时,JS弹出窗口会打开并显示照片及其信息。
要关闭弹出/子窗口,并在我的父/开启窗口上刷一个元素,我一直在使用这个函数:
function closeWindow() {
var currentID = document.getElementById('currentID').value;
window.opener.flashElement(currentID);
window.close();
}
我的问题是,如果我的用户离开弹出窗口最初打开的页面,这不起作用。例如,在弹出窗口中,有下一个和上一个按钮可以滚动显示该组结果中的各个照片,这些照片会使用新的查询字符串值重新加载页面。
如果我的用户滚动(重新加载页面)少于7次就可以了,但是如果他们滚动的次数超过了这个值,那么window.opener
函数就不起作用了,因此window.close
函数没有'要么!
我可能会重建页面,因此数据来自AJAX调用,而不是重新加载页面,但这是我可以做的很多工作。
有什么想法吗?
答案 0 :(得分:13)
我猜是
window.opener.flashElement(currentID);
抛出错误,或者该函数不存在。很可能页面上不存在具有currentID值的元素。尝试捕捉错误。
function closeWindow() {
var currentID = document.getElementById('currentID').value;
try {
window.opener.flashElement(currentID);
} catch (err) {
alert(err.description || err) //or console.log or however you debug
}
window.close();
}