2011-12-24 2 views
0

私は別のウェブサイトをiframeしています。しかし、私のページで実行したくないjavascript関数がページにあります。それはiframeコンテンツのjavascript機能を停止するにはどうすればよいですか?

if (top.location != location) { 
top.location.href = document.location.href; }  

私はこれを試しましたが、ページ全体を停止します。

function StopLoading() { 
if (!document.all) 
{ 
window.stop(); 
} 
else 
{ 
window.document.execCommand('Stop'); 
} 
}  

<iframe id="i_frame" onload="StopLoading()" src="http://website.com/"></iframe> 

答えて

2

私は(関係する2つのサイトが異なるドメインにあると仮定した場合)、標準ブラウザのセキュリティ制限のため、あなたがこれを行うことができます信じていません。これを行う能力は、むしろ厄介なことの可能性を広げるだろう。最初にiframeにこの他のサイトを置くべきですか?

0

私がearlier answer of mineで言ったように、HTTP/1.1 204 No Contentヘッダーを返すことができるサーバーがある場合にのみこれを行うことができます。あなたは、サーバーのようなものを持っている場合は、このようなコードを使用することができます。

var prevent_bust = 0; 
window.onbeforeunload = function(){ 
    prevent_bust++; 
}; 
setInterval(function(){ 
    if (prevent_bust > 0) { 
    prevent_bust -= 2; 
    window.top.location = 'http://server-which-responds-with-204.com'; 
    } 
}, 1); 

この方法はhereに記載されています。

204ヘッダーがないと、おそらくこれを行うことはできません。そして正当な理由で。 clickjackingを防止するために通常、フレーム破棄が使用されますが、これは非常に危険です。

+0

このスニペットを使用すると、iframeコンテンツは読み込まれません。 – user198989

関連する問題