child 失去了 parent !!
我有一个父窗口,当有人单击图像时,JS弹出窗口将打开并显示照片及其信息。
要关闭弹出窗口/子窗口并在父窗口/打开窗口中刷新元素,我一直在使用以下功能:
function closeWindow() {
var currentID = document.getElementById('currentID').value;
window.opener.flashElement(currentID);
window.close();
}
我的问题是,如果我的用户离开弹出窗口最初打开的页面,这将无法正常工作。例如,在弹出窗口中,有下一个和上一个按钮可滚动浏览该结果集中的单个照片,这将为页面重新加载新的querystring值。
如果我的用户滚动(重新加载页面)少于7次是可以的,但是如果他们滚动多于7次,则
window.opener
函数不起作用,因此,window.close
函数也不起作用!我可能可以重建页面,以便通过AJAX调用获得数据,而不是重新加载页面,但这是我要做的很多工作。
有任何想法吗?
最佳答案
我的猜测是
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();
}