更改iframe网址会更改父窗口网址

时间:2011-12-20 10:05:07

标签: javascript iframe

我正在使用以下页面显示iframe中网址的内容,并根据输入值进行更改。

<html>
<head>
<script type="text/javascript">
function changeUrl()
{
 var url=document.getElementById('browseurl').value;
 if(url!="")
 {
   if(url.indexOf("http")==-1)
   {
    url="http://"+url;
   }
   document.getElementById('browserWnd').src=url;
 }
}
</script>
</head>

<body>
 <div >
   <span>Url</span> 
   <input id="browseurl" name="browseurl" type='textbox' />
   <input id="browse" type='button' value="changeurl" onclick="changeUrl()" />
 </div>

<iframe id="browserWnd" src="http://www.coolmath.com/" height="700" width="625"></iframe>
</div>
</body>
</html>

我的问题是浏览iframe中加载的网址的某些内页 更改父窗口网址 而不是在iframe中加载...

http://www.coolmath.com/ 中加载iframe但在浏览某些链接时会在父窗口中加载整个页面。

2 个答案:

答案 0 :(得分:2)

来自www.coolmath.com:

if (window.self != window.top) ...

意味着该网站活跃地被诬陷。

答案 1 :(得分:2)

您可能会注意到,即使是这样的<iframe src='http://www.coolmath-games.com/0-fraction-splat/index.html'></iframe>也会产生相同的结果。这是一种名为frame-busting的技术。它位于页面代码中:

<script>
<!-- Hide Script
 if (top.location != self.location) {
   top.location = self.location
 }
//End Hide Script-->
</script>

如果您有一台可以使用HTTP/1.1 204 No Content标头回复的服务器,您可以“停用”&#34;这个框架破坏者如here所述。