2011-12-20 217 views
1

我正在使用以下頁面顯示iframe中的url內容並根據輸入值更改它。更改iframe url更改父窗口url

<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中加載了一個網址的一些內頁改變父窗口的URL,而不是裝載在IFRAME ...

爲前HTTP:// WWW。 coolmath.com/在iframe中加載,但瀏覽一些鏈接時會在父窗口中加載整個頁面。

回答

2

從www.coolmath.com:

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

意味着activly逃逸被陷害的網站。

+0

但以下也沒有自己或頂部做同樣的事情。 http://www.woodlands-junior.kent.sch.uk/maths/ – ArK 2011-12-20 10:14:01

+1

@Paniyar你提供的鏈接*有*自己和'頂部'。代碼是: '' – 2011-12-20 15:11:52

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頭回應,你可以描述here爲「禁用」此幀剋星。

+0

我不能告訴你我一直在尋找這個多久。另一個檢查可能是'if(top!= self)'。我在尋找一些舊的代碼,不斷彈出我的'iframe'頁面,但不知道是什麼造成了它。謝謝。 – CaptainBli 2012-05-25 01:20:10