回答:
最善の解決策はベースタグを使用することでした。以下をiframeのページの先頭に追加します。
<base target="_parent">
これにより、ページ上のすべてのリンクが親ウィンドウに読み込まれます。リンクを新しいウィンドウでロードする場合は、次を使用します。
<base target="_blank">
このタグは、すべてのブラウザで完全にサポートされています。
<base target>
前に来る必要があり<a href>
ます。相対URLが解決されるベースURLを設定するため<base href>
、URL参照(<* href>
<* src>
<form action>
<object data>
…)の前に来る必要があります。
<base
タグは、仕様に応じて何の閉鎖を持っていないw3.org/TR/html5/document-metadata#the-base-elementそれがあるべきよう<base target="_parent" >
任意のオプションを使用できます
親ページのみの場合:
親ページまたは親iframeへのすべてのリンクを開く場合は、iframeのヘッドセクションで次のコードを使用します。
<base target="_parent" />
または
親ページまたは親iframeへの特定のリンクを開く場合は、次の方法を使用します。
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
または
ネストされたiframeの場合:
すべてのリンクをブラウザーウィンドウに開く(ブラウザーのURLにリダイレクトする)場合は、iframeのヘッドセクションで次のコードを使用します。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
</script>
または
特定のリンクをブラウザーウィンドウに開く(ブラウザーのURLにリダイレクトする)場合は、次の方法を使用します。
<a href="http://specific.org" target="_top" >specific Link</a>
または
<a href="javascript:top.window.location.href='your_link'">specific Link</a>
<a href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a href="http://normal.org">Normal Link</a>
すでに述べたように、ターゲット属性を使用することもできますが、XHTMLでは技術的に廃止されました。そのため、通常はのようなJavaScriptを使用できますparent.window.location
。
Webページでiframeを使用している場合、iframeからHTMLハイパーリンク(アンカータグ)を使用してページ全体を変更しているときに問題が発生する可能性があります。この問題を軽減する2つの解決策があります。
解決策1.次の例に示すように、アンカータグのターゲット属性を使用できます。
<a target="_parent" href="http://www.kriblog.com">link</a>
解決策2. JavaScriptを使用して、iframeから親ウィンドウで新しいページを開くこともできます。
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
target="_parent"
XHTMLでは⇒ は推奨されていませんが、HTML 5.xではまだサポートされています。
詳細は、次のリンクhttp://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.htmlから読むことができます 。
最も用途が広く、最もクロスブラウザなソリューションは、「base」タグの使用を避け、代わりに「a」タグのtarget属性を使用することです。
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>
タグはそれほど万能で、ブラウザは、より多くのクロスブラウザのテストを必要とし、文書内での配置のための要件で矛盾しています。プロジェクトや状況によっては、ブラウザーの理想的なクロスブラウザー配置を実現するのが難しい場合や、まったく実行できない場合さえあります。<base>
タグのます。
タグのtarget="_parent"
属性を使用してこれを行うと、<a>
ブラウザにとって使いやすくなるだけでなく、iframeで開くリンクと親で開くリンクを区別することもできます。
試す target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
同じではありません"_parent"
か?
<script type="text/javascript"> // if site open in iframe then redirect to main site
$(function(){
if(window.top.location != window.self.location)
{
top.window.location.href = window.self.location;
}
});
</script>