iframe:我们如何从iframe内部更改iframe src?

8

我知道有很多问题与这个类似,但是我仍然没有正确理解它的概念。我目前正在通过以下方式使用javascript加载iframe:

jQuery('.out-div-login').html("<iframe id='parent' frameBorder='0' width='320' height='500' src='"+_url+"'></iframe>");  

目前已经很好地工作 (它是跨域的)。在载入给定的 iframe 中的应用程序之后,我想回到原始状态,在这种状态下 .out-div-login 将 iframe 载入父 HTML。
从 iframe 的外部,可以通过访问其 id 属性来实现这一点,但无法从内部实现。有没有办法通过再次提供其 src 来重新加载 iframe?或者从 iframe 内部的上述代码中实现?谢谢。
更新
目前为止,我尝试了以下代码,但都没有成功:

var ifr = $('iframe[id="parent"]');  

从id为parentiframe中的一个JavaScript文件中,当我执行console.log(ifr)时,在Firebug中显示的是一个类似于Object[]的东西,而不是<iframe id="parent">


可能是重复的问题:更改 iframe 的 src,然后重新加载 iframe - Sebi2020
1
@Sebi2020 感谢您的回复,但是给定链接中的代码仅在我们尝试从iframe外部执行时才起作用。我已经尝试过了,甚至无法从当前iframe内部获取iframe引用。 - user3137239
2个回答

21

在iframe内部,请使用location.href。将iframe中的location.href设置为新位置即可。


所以 location.href 的目标是当前文档!!对于这个 iframe 来说,它是当前文档。非常感谢 :) - user3137239

1
url查询字符串(?xxx)也应该保留在新的url中,因此整个解决方案应为:
location.href = "new_link_url" + location.search;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接