web-dev-qa-db-ja.com

Iframeからのリンクを親ウィンドウに強制的に開く方法

新しいページで開くのではなく、同じ親ページでリンクを開く必要があります。

注意:iframeと親ページは 同じドメイン です。

325
Haim Evgi

最善の解決策は base タグを使用することです。 iframeのページの先頭に次のコードを追加します。

<base target="_parent">

これは親ウィンドウのページのすべてのリンクをロードします。リンクを新しいウィンドウにロードする場合は、次のようにします。

<base target="_blank">

このタグは 完全にサポートされている すべてのブラウザで/です。

577
Chris Vasselli

Target-attributeを使用してください。

<a target="_parent" href="http://url.org">link</a>
135
nnevala

JavaScriptの場合

window.parent.location.href= "http://www.google.com";
32
yenssen

あなたは任意のオプションを使用することができます

親ページのみの場合:

all link を親ページまたは親iframeに開きたい場合は、iframeのheadセクションで次のコードを使用します。

<base target="_parent" />

_または_

特定のリンク を親ページまたは親iframeに開きたい場合は、次のようにします。

<a target="_parent" href="http://specific.org">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

_または_

入れ子になったiframeの場合:

all link をブラウザウィンドウに開きたい(ブラウザ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>
22

base というHTML要素があります。

ページ上のすべてのリンクのデフォルトのURLとデフォルトのターゲットを指定します。

<base target="_blank" />

_blankを指定することで、 iframe の内側のすべてのリンクが外側に開かれるようにします。

15
vsync

前述のように、target属性を使用できますが、XHTMLでは技術的には推奨されていませんでした。そのため、JavaScriptを使用する必要があります。通常はparent.window.locationのようなものです。

8
Ryan McGrath

target="_parent"内でanchor tag attribute を試してください。

7
Gee

最も用途が広く最もクロスブラウザのソリューションは "base"タグの使用を避け、代わりに "a"タグのtarget属性を使うことです:

<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>

<base>タグは汎用性が低く、ブラウザはドキュメント内に配置するための要件が​​矛盾しているため、ブラウザ間のクロステストがさらに必要になります。あなたのプロジェクトや状況によっては、理想的なクロスブラウザ配置の<base>タグを実現するのは困難であるか、あるいは完全に実行不可能でさえあります。

target="_parent"タグの<a>属性を使ってこれを行うことは、よりブラウザに優しいだけでなく、iframeで開きたいリンクと親で開きたいリンクを区別することもできます。

4
Adelmar

<a target="parent">は新しいタブ/ウィンドウでリンクを開く... <a target="_parent">は新しいタブ/ウィンドウを開かずに親/現在のウィンドウでリンクを開く。 Don't_forget_that_underscore!

3
krisjd

Webページでiframeを使用している場合は、iframeからHTMLハイパーリンク(アンカータグ)を使用してページ全体を変更するときに問題が発生する可能性があります。この問題を軽減するには2つの解決策があります。

解決策1.次の例に示すように、アンカータグのtarget属性を使用できます。

<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

1
user1788142

うん私は見つけた

<base target="_parent" />

これは、iframeで開いているすべてのiframeリンクを開くのに役立ちます。

そして

$(window).load(function(){
    $("a").click(function(){
        top.window.location.href=$(this).attr("href");
        return true;
    })
})

これは、ページ全体またはページの特定の部分に使用できます。

ご協力ありがとうございました。

1
Ratan Paul

target="_top"を試す

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>
0
Aamir Shahzad
   <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>
0
sandeep kumar