在开启窗口上调用函数

时间:2011-12-23 01:05:48

标签: javascript

孩子失去了父母!!

我有一个父窗口,当有人点击图像时,JS弹出窗口会打开并显示照片及其信息。

要关闭弹出/子窗口,并在我的父/开启窗口上刷一个元素,我一直在使用这个函数:

function closeWindow() {
    var currentID = document.getElementById('currentID').value;
    window.opener.flashElement(currentID);
    window.close(); 
}

我的问题是,如果我的用户离开弹出窗口最初打开的页面,这不起作用。例如,在弹出窗口中,有下一个和上一个按钮可以滚动显示该组结果中的各个照片,这些照片会使用新的查询字符串值重新加载页面。

如果我的用户滚动(重新加载页面)少于7次就可以了,但是如果他们滚动的次数超过了这个值,那么window.opener函数就不起作用了,因此window.close函数没有'要么!

我可能会重建页面,因此数据来自AJAX调用,而不是重新加载页面,但这是我可以做的很多工作。

有什么想法吗?

1 个答案:

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