【问题标题】:Hyperlink not opening in Iframe, instead opens in new tab超链接未在 iframe 中打开,而是在新选项卡中打开
【发布时间】:2013-09-18 14:01:07
【问题描述】:

我在左侧面板侧边栏上有一些超链接。单击其中任何一个时,相应的页面应在右侧的 iframe 中打开。现在,这对大多数链接都很好。但是对于某些链接,不幸的是,我需要使用的链接,它仅在页面加载的第一次时在 iframe 中正确打开。之后,它会继续在新标签页中打开。

控制台显示“不安全的 JavaScript 尝试从具有 URL2 的框架访问具有 URL1 的框架。域、协议和端口不匹配。” 但即使在 iframe 中正确打开链接的情况下也会出现这种情况。我完全不明白为什么会发生这种情况。帮帮我。

<a href= "some url" target="iframe_P"> </a>

<iframe src="random url" name="iframe_P" scrolling="auto"></iframe>

我也尝试过使用 id = "iframe_P"。也不行。

【问题讨论】:

  • 您的链接是指向您自己的域还是第三方域?
  • 链接属于我使用的同一个网络。由于我在控制台上收到“域、协议和端口不匹配”消息,因此域可能不匹配。但是对于一些绝对在我的域之外的其他链接,例如,对于一些公共链接,它们会在 iframe 中完美打开,并显示“域、协议和端口不匹配”消息。

标签: html iframe


【解决方案1】:

看看这个:

 <a href="http://www.wikipedia.org/" target="myIframe">Link Text</a>
    <iframe src="" name = "myIframe"></iframe>

JSFIDDLE

【讨论】:

  • 尝试将 url 更改为 yahoo.com 和 google.com;并没有工作。简而言之,这适用于某些网址,而不是全部。
  • 我正在以同样的方式做这件事,正如我在我的问题中所展示的那样。没用。
  • @aliasm2k 是的,我的想法完全正确。这种不一致的行为有什么原因吗?
  • 我可能的猜测是 yahoo.com 和 google.com 都有内部重定向,这会阻止它被加载到 iframe 中。我不是专家,这只是一种预感
  • 谷歌和雅虎不支持这种行为。原因是 Google 正在发送“X-Frame-Options: SAMEORIGIN”响应标头。此选项可防止浏览器显示与父页面不在同一域中的 iFrame。
【解决方案2】:

您也许应该考虑在模式弹出框中打开 iframe。您可以创建一个适合您需要的简单的,这里有一篇关于它的文章:

http://www.webdesignerdepot.com/2012/10/creating-a-modal-window-with-html5-and-css3/

这是一个 jsfiddle 示例: http://jsfiddle.net/tkra4/1/ html: 打开模态

<div id="openModal" class="modalDialog">
<div>
    <a href="#close" title="Close" class="close">X</a>
    <h1>Delete this and put your iframe here</h1>
</div>

css:

   .modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}

.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}

.close:hover { background: #00d9ff; }
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-03-22
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    相关资源
    最近更新 更多