在打开器窗口上调用函数

Calling function on opener window

本文关键字:调用 函数 窗口      更新时间:2023-09-26

孩子失去了父母!!

我有一个父窗口,当有人点击一个图像JS弹出打开并显示照片和它的信息。

要关闭弹出窗口/子窗口,并在父窗口/打开器窗口上闪烁元素,我一直在使用这个函数:

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

我的问题是,如果我的用户从弹出窗口最初打开的页面导航离开,这就不起作用了。例如,在弹出窗口中,有"下一步"answers"上一步"按钮,用于滚动该结果集中的单个照片,这将使用新的查询字符串值重新加载页面。

如果我的用户滚动(重新加载页面)少于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(); 
}