【问题标题】:Can I modify elements in iframes from the parent page?我可以从父页面修改 iframe 中的元素吗?
【发布时间】:2010-12-22 08:02:48
【问题描述】:

我有一个包含两个独立 iframe(标题和导航)的页面,其中包含一些链接。 (我知道这很糟糕。我必须这样做,因为标题和导航实际上来自另一个项目)

当我点击 iframe 内的链接时,只有相关的 iframe 会发生变化。虽然我想要的是,当我单击链接时,整个页面,即当前窗口,会更改为该新 URL。

我知道 javascript 注入是不可能的,并且我无法将 附加到 iframe 的

中。

有什么方法可以实现我想要的吗?或者如果你有比

【问题讨论】:

  • 你不能使用 PHP 和 include() 或 sth。像那样?
  • 我刚刚重新阅读了您的问题,您谈到了注射。这让我想知道;您是否因某种原因无法更改框架页面的来源?
  • @Hemlock:是的,没错。如果无法将 javascript 注入 iframe,除了 iframe 之外,还有没有更好的方法来合并这些部分?我想要的是,当我单击标题和导航中的链接时,窗口会指向该 URL。(现在,只有 iframe 会更改。)
  • 这取决于。帧是否在同一个域(包括子域和端口)上?您可以使用代理将它们放在同一个域中吗?
  • @Hemlock 是的,它们在同一个域中。谢谢你的帮助:-)

标签: javascript html frontend


【解决方案1】:

target="_top"添加到框架中的链接,例如

<a href="SomePage.aspx" target="_top">Click me</a>

【讨论】:

  • 同样,在 javascript 中你可以做 window.top.location.href = 'blah.aspx'
  • @Hemlock 正确,但是当它在纯 HTML 中可用时,为什么还要打扰 JS? :)
  • 我们不知道他的链接是什么样的,也许他们已经在触发 JS。如果是这样,那么完成也没有什么坏处。
【解决方案2】:

同一个域?去城里注入一个标签,或者修改所有的 a 标签以有一个目标。如果需要,我可以添加有关如何操作的更多信息。

编辑 这是一个完整的 jsbin 页面: http://jsbin.com/osoji4/10

【讨论】:

  • 由于标题和导航区域来自其他人的项目,我不能用 target="_top" 污染他们的代码。我想知道是否有另一种方法可以将页眉和导航区域插入我的页面,比如 Ajax。谢谢你,铁杉。你真是个好人。
  • 哦,这与我的想法完全相反。在那种情况下,影子巫师的回答不能解决你的问题吗?框架您的项目并将 target=_top 属性放在所有链接上?通过 ajax 请求他们的代码并将其注入您的页面将是一项艰巨的挑战。
  • 哦,可能我的意思没有表达清楚。不是我的项目被陷害了。我有这个 HTML 页面,我将标题和导航放在相应的 div>iframe 中,并将我的项目放在 div#content 中。我最初的解决方案是尝试将 target 属性放在 iframe 中的所有链接上,但事实证明我无法使用 JavaScript 或 CSS 在此 HTML 页面中执行此操作。
  • 看看那个jsbin里的代码。我认为它可以解决您的问题。如果没有,您将不得不尝试发布一些代码。
  • 是的,jsbin中的代码正是我想要的。谢谢你,铁杉。
猜你喜欢
  • 1970-01-01
  • 2011-05-08
  • 2011-01-04
  • 2020-10-16
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多