2017-06-10 15 views
0

thirdparty webappを別のHTMLページに埋め込む必要があります。問題は、このwebappにwindow.topの呼び出しが含まれているため、iframe内で動作しないことです。HTMLサンドボックスのiframe - 同じiframeへの親コールのリダイレクト

私が欲しいこのコードでは例えば

「www.google.com」「FramePage.html」のコードを変更することなく、インラインフレームの内側にロードする:

<!--ParentPage.html--> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    Parent Page 
    <iframe src="FramePage.html" sandbox></iframe> 
</body> 
</html> 

<!--FramePage.html--> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    FRAME 
    <a href="http://www.google.com" target="_top">hello</a> 
</body> 
</html> 
+0

'FramePage.html'から' target'属性を削除するだけですか? – BenM

答えて

0

あなたはHTML5に切り替える代わりに(場合あなたが現在使用している過渡期のdoctypeを使用している場合は、に "sandbox"属性を使用して、iframeがフレーミングページの場所を変更する機能を無効にすることができます。 (あなたはその属性がすでに存在しているのを見ていますが、HTML5以前のドキュメントでは効果がありません)。

"sandbox"プロパティのオプションはhereです。 (これらはすべて枠付きサイトに課せられる制限を減らすため、ウィンドウトップのナビゲーションを避けたい場合は、「allow-top-navigation」を除くすべてのオプションを含めます)。

これでしかし、あなたが望むふるまいは、それらのフレームがフレーム内に留まる代わりに、単にそれらのリンクがまったく動作しないようにします。

これ以外では、管理していないフレーム化されたサードパーティサイトの機能を変更することはできません。

関連する問題