在Iframe中强制“ http”链接在新标签页中打开

时间:2018-07-27 00:09:24

标签: javascript jquery html

我有一个网页托管在https上,其中包含iframe内容,其中包含http链接。框架内容位于另一个域,但为https,但我希望能够将http链接打开到新选项卡中。到目前为止,我还无法通过jquery实现这一点。

示例。

<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script>
    $(function() {
      $("a[href^='http://']:not([href*='https://'])").each(function() {
        $(this).click(function(event) {
          event.preventDefault();
          event.stopPropagation();
          window.open(this.href, '_blank');
        }).addClass('externalLink');
      });
    });
  </script>
</head>

<body>
  <div class="banner">
    <a href="http://example.com">WE ARE STILL HERE</a>
    <iframe name="home" scrolling="auto" height="100%" width="100%" noresize="true" src="https://www.example.com">
</iframe>
  </div>

</body>

</html>

您可以尝试使用各种混合内容页面。您会注意到,占位符链接“我们仍然在这里”完美地打开了一个新窗口,而如果不选择允许不安全的内容,则不会加载iframe中的任何内容。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果iframe网址和首页url在同一域中,那么可以通过此代码来访问放置在iframe中的元素

var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

但实际上不是不可能的