【问题标题】:how to set the src of an iframe from a popup that was opened from that iframe如何从从该 iframe 打开的弹出窗口中设置 iframe 的 src
【发布时间】:2012-12-06 13:21:52
【问题描述】:

我有一个iframe,可以从中打开一个弹出窗口。在该弹出窗口中进行一些重定向后,我想更改iframesrc,并关闭弹出窗口。这在 Chrome 中不起作用(在其他浏览器中起作用)。我正在尝试使用window.opener.location.href=newURL,但在 Chrome 中,这会将href 更改为页面,而不是iframe。有什么建议?我不是 javascript 开发人员,但这是我的项目需要的一小部分。

【问题讨论】:

  • 只有 Chrome 的问题吗?顺便说一句,在弹出窗口重定向几次后,当它尝试更改开启器位置时,它是否最终在同一主机上?
  • 是的。在其他浏览器中工作正常。 iframe src 使用新值更改。我应该尝试使用 self.opener.location.href 吗?
  • 弹出窗口用于允许应用程序共享 google 凭据(sso 登录)
  • 谢谢。我的搜索有所不同。我会试试的

标签: javascript google-chrome iframe window location


【解决方案1】:

我想这可能与 Chrome 强加的安全性有关。 您可以编写用于更改 url 的函数(分配 window.location 的简单包装器),然后从弹出窗口调用该函数,而不是直接尝试弄乱开启程序的位置。

// function in parent (opener window)
function navigateTo(url) {
    window.location = url;
}

// invoke that function from within pop-up like so:
window.opener.navigateTo('http://some-url.com');

如果父窗口和弹出窗口在执行上述函数时共享相同的域,它将起作用。

【讨论】:

  • 好的,所以你不能使用 window.opener(至少在 Chrome 中)——你会得到安全错误。
猜你喜欢
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多