【发布时间】:2011-10-11 00:09:23
【问题描述】:
我一直在研究这个问题,虽然各种论坛上有很多关于类似问题的帖子,但没有一个问题或解决方案与我的完全匹配。
我有一个应用程序已成功使用以下功能在完成弹出窗口后重定向回父窗口。最近在研究其他浏览器的兼容性(让系统可以通过iPad使用),发现在使用Safari或者Chrome的时候这个功能有问题。
父页面是一些数据库信息的摘要,用户单击链接打开一个窗口(通过 window.open)查看更详细的数据。完成后,子窗口上有一个链接,用于刷新父窗口上的数据(部分是为了确保在返回父窗口时显示正确的数据)并关闭子窗口。
Safari 中的控制台报告“'window.opener.location.href' 的结果不是函数”。我曾尝试使用上述和“window.opener.document.location.href”和“window.opener.window.location.href”(取自网上提供的其他解决方案),但没有成功。
我知道有些人的这个功能运行良好,而另一些人则有这样的问题。我想知道这种特定情况是否有任何答案。
这是我的功能:
function quicklink(url) {
window.opener.document.location.href(url);
self.close();
}
这从第一天起就在 IE7、8 和 9 上有效,但在 Safari(适用于 Windows 或 iPad)或 Chrome 中无效。
有什么想法吗?
【问题讨论】:
-
如果用户在此期间关闭了开启器,这会有所帮助,例如:
if (window.opener) { window.opener.document.location.href = url;} else { /*opener is closed, deal with it*/ }。 -
谢谢罗伯。是的,一旦我让功能在没有它的情况下工作,肯定会这样做。谢谢。
标签: javascript google-chrome safari window.opener