2011-12-20 19 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の一部内側のページを閲覧している親ウィンドウのURLにの代わりに、iframe内にロードを変更...

EX のhttpため:// WWW。 coolmath.com/ iframeに読み込み中、一部のリンクを参照している間に、親ウィンドウでページ全体が読み込まれます。 activly額装されているエスケープサイトを意味

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

:www.coolmath.comから

答えて

2

+0

でも、自己またはトップなしで同じことをします。 http://www.woodlands-junior.kent.sch.uk/maths/ – ArK

+1

@Paniyarあなたが提供したリンクは「自己」と「トップ」を持っています。コードは次のとおりです。 ' ' –

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

関連する問題