iframe:后续点击会在新标签中加载新网址

时间:2013-01-05 10:16:18

标签: html html5 google-chrome firefox iframe

!! SOS !!

问题背景:我有一个包含一些页面标题和相应网址的文件。我正在动态读取此文件并生成一个表格,每行显示(可点击的)标题。页面上有一个iframe。我希望当用户点击其中一行时,相应的页面应该加载到iframe中。这些网址可能属于不同的域名。

主要问题:第一次点击会在iframe中完美打开相应的网址。但是,任何后续点击(在相同或不同的行上)都会在新窗口中打开网址,而不是替换iframe中的早期网址。

尝试用谷歌搜索它很长时间,但似乎这个问题仍然没有得到解决(很多没有回复的空帖: - ()

请回复此帖。如果需要,我很乐意为您提供更多信息/代码。

此致 P

PS:顺便说一句,这个简单的HTML代码也发生了同样的事情。只有两个链接和一个iframe。复制粘贴此html文件并尝试。一个链接将在iframe中加载内容,另一个链接将重定向到新标签:x:x

<html>
<table>
<tr><td><a style="text-decoration:none; line-height: 150%; color:darkslategray;" href="http://www.usatoday.com/story/money/markets/2013/01/04/stocks-higher-bull-market-high/1810075/" target="main_frame">GM, Peugeot to Decide on Brazil Factory This Month, Veja Says <br>Bloomberg News &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2012-05-19</a></td></tr>
<tr><td><a style="text-decoration:none; line-height: 150%; color:darkslategray;" href="http://www.reuters.com/article/2013/01/04/us-markets-stocks-idUSBRE8BG0D620130104" target="main_frame">GM, Peugeot no Decide on Brazil Factory This Month, Veja Says <br>Bloomberg News &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2012-05-20</a></td></tr>
</table>

<iframe name="main_frame" frameborder="0" marginheight="0" marginwidth="0" scrolling="yes" height="100%" width="100%" src=""></iframe>

</html>

在chrome和firefox上测试过。

2 个答案:

答案 0 :(得分:1)

解决了!!!

使用以下两个链接:https://developer.mozilla.org/en-US/docs/HTML/Element/iframeFirefox opens links targeted for iFrame in browser's new tab instead

以及以下代码:

<html>
<head>
<script type="text/javascript">
function navigate(url)
{
    var iframe = document.getElementsByTagName( "iframe" )[0];
    iframe.src = url;
}
</script>
</head>

<body>
<table>
<tr><td><a href="javascript:navigate('http://www.usatoday.com/story/money/markets/2013/01/04/stocks-higher-bull-market-high/1810075/')">Some title</a></td></tr>
<tr><td><a href="javascript:navigate('http://www.reuters.com/article/2013/01/04/us-markets-stocks-idUSBRE8BG0D620130104')">Some Other title</a></td></tr>
</table>

<iframe name="main_frame" frameborder="0" marginheight="0" marginwidth="0" scrolling="yes" height="100%" width="100%" src=""></iframe>

</body>
</html>

答案 1 :(得分:0)

其中一个网页更改了其窗口的window.name,并通过窗口名称进行定位,而非框架名称...