【问题标题】:Redirecting child iframe to relative url, using js within iframe - but url is relative to the parent在 iframe 中使用 js 将子 iframe 重定向到相对 url - 但 url 是相对于父级的
【发布时间】:2011-09-22 12:23:26
【问题描述】:

一些我没想到的有趣行为。我有一个包含 iframe 的页面,并且在该 iframe 中有一个 javascript 函数可以重定向它自己的窗口。

我从父框架调用 iframe 的 js 函数。我的预期行为是将 iframe 重定向到新页面,相对于 iframe 的现有位置。

相反,它会相对于父框架的位置进行重定向。

您可以在此处查看演示:

http://thedailynathan.com/files/outlink/parent/parent.html

我是不是在这里做错了什么,还是我只需要在一个绝对 URL 中编写重定向代码?

发现这个话题听起来很相似。但是没有人想出答案:

Using relative url for window.location in child iframe

【问题讨论】:

    标签: javascript url iframe


    【解决方案1】:

    改变:

    document.getElementById("myframe").contentWindow.moveMe()
    

    到:

    document.getElementById("myframe").contentWindow.location = "javascript:moveMe()"
    

    这样,moveMe 在 iframe 的上下文中执行。

    【讨论】:

    • 其实是一个后续语法问题。如果我需要将参数传递给 moveMe(),这将如何工作?
    • @Nathan 好吧,“javascript:moveMe()”只是一个字符串,所以您可能只能传递字符串或数字参数,如下所示:“javascript:moveMe('myParameterValue') ", "javascript:moveMe(123)"
    • 是的,我也是这么想的。您的解决方案肯定适用于这些情况,不幸的是我需要能够传入一些对象。我想如果归根结底我可以将它们序列化,但如果有办法避免这种开销会更好。
    • @Nathan 好吧,有一点丑陋的方式。您可以在 parent.html (winddow.myParam) 中设置一个全局变量,并在调用 moveMe (parent.myParam) 时从 child.html 访问它。
    【解决方案2】:

    试试这个,它对我有用。

    <script>function RedirectPage(){ document.getElementById("frame1").src = "http://WWW.microsoft.com";}</script>
    

    【讨论】:

      猜你喜欢
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 2019-07-17
      • 2021-10-11
      • 2018-07-31
      • 1970-01-01
      相关资源
      最近更新 更多