【问题标题】:Open link in a new tab from button clicked within iFrame [closed]从 iFrame 中单击的按钮在新选项卡中打开链接 [关闭]
【发布时间】:2018-06-27 11:04:32
【问题描述】:
    <head>
</head>
<div> 
    <iframe src="https://....."></iframe>
</div>

我想知道如何在单击此按钮时在新选项卡上打开链接,因为每当单击该按钮时,页面都会在 iFrame 中加载.. 我已经尝试过&lt;base target="_blank"&gt;,但似乎并没有真正起作用..

【问题讨论】:

  • 不要给我们“我已经尝试过[这里的解释模糊],但似乎并没有真正起作用”,而是向我们展示确切什么你试过了。例如,现在我们不知道您在哪里“尝试”了这个 - 在 iframe 中加载的文档中,还是在……其他地方?
  • 另外,请适当标记。目前,您所展示的一切与vue.js 没有任何关系

标签: javascript html vue.js


【解决方案1】:

要在新选项卡中打开链接,正如其他用户所说,您应该在 iframe 中使用:

<a target="_blank" href="https://google.com">link</a>

如果您在同一个域中,您可以毫无问题地执行此操作,因为 Same-origin policy 但如果 iframe 来自不同的域,您必须使用 sandbox property 委派该权限,但不幸的是,这在不同的浏览器中有不同的行为,并且在不同版本的浏览器中。

【讨论】:

    【解决方案2】:

    如果 iframe 是同一个域,则将按钮 onclick 设置为:

    window.open(url , '_blank')
    

    【讨论】:

    • 这对我有用,谢谢!
    【解决方案3】:

    iframe 是否来自同一个域?如果没有,可能会有问题。

    现在,试试这个

    <a target="_parent">click me</a>
    

    <a target="_top">click me</a>
    

    此外,您确定这不是 XY 问题 (https://en.wikipedia.org/wiki/XY_problem)?你真正想达到什么目标?

    【讨论】:

    • ^ 这需要评论
    • 不,不是同一个域
    • 那你无能为力,CORS 限制了这个
    • @HeyabRedda 恐怕哈德森是对的,如果它是跨域的,你就无能为力了。但同样,你真正想要达到什么目的?如果我们知道真正的问题,也许我们可以提供帮助:)
    【解决方案4】:

    在 iframe 标记中使用以下属性

    target="_blank"
    

    【讨论】:

      猜你喜欢
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 2013-02-20
      相关资源
      最近更新 更多