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();
}

10-07 13:09
查看更多