Javascript 在opener窗口上调用函数

Javascript 在opener窗口上调用函数,javascript,Javascript,这孩子失去了双亲 我有一个父窗口,当有人点击一个图像时,一个JS弹出窗口就会打开并显示照片及其信息 要关闭弹出窗口/子窗口,并在父窗口/打开窗口上闪烁元素,我一直在使用此功能: function closeWindow() { var currentID = document.getElementById('currentID').value; window.opener.flashElement(currentID); window.close(); } 我的问题是

这孩子失去了双亲

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

要关闭弹出窗口/子窗口,并在父窗口/打开窗口上闪烁元素,我一直在使用此功能:

function closeWindow() {
    var currentID = document.getElementById('currentID').value;
    window.opener.flashElement(currentID);
    window.close(); 
}
我的问题是,如果我的用户离开弹出窗口最初打开的页面,则此功能不起作用。例如,在弹出窗口中,有“下一步”和“上一步”按钮可滚动浏览该结果集中的各个照片,从而使用新的查询字符串值重新加载页面

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

何时调用
closeWindow()
函数?当用户单击“关闭”按钮或类似按钮时?要完全清楚,
closeWindow()
在子窗口中,对吗?当用户单击关闭按钮并且closeWindow()在子窗口中时,调用@jackiechelles yes closeWindow()的可能重复项。正如我所说,如果用户重新加载弹出窗口的次数不超过7-8次,它就可以正常工作。@ThiefMaster-是的,Twitter和Facebook仍然使用弹出窗口。查看Twitter开发者页面。他们不可能那么坏:)而且。。谷歌字体使用弹出窗口。3个大牌仍然使用它们,这实际上帮助了很多。我发现currentID值为空,因此它在父页面上的函数中导致了一个错误。但这仍然不能解释为什么currentID在第一位丢失。这是一个隐藏的文本字段,由ASP和photoID填充。如果照片ID不存在,页面将无法加载!奇怪!!