Antworten:
Ich fand, dass die beste Lösung darin bestand, das Basis- Tag zu verwenden. Fügen Sie dem Kopf der Seite im Iframe Folgendes hinzu:
<base target="_parent">
Dadurch werden alle Links auf der Seite im übergeordneten Fenster geladen. Wenn Sie möchten, dass Ihre Links in einem neuen Fenster geladen werden, verwenden Sie:
<base target="_blank">
Dieses Tag wird in allen Browsern vollständig unterstützt .
<base target>
sollte vor allen kommen <a href>
, da es den Standard-Browserkontext für folgende Links festlegt; <base href>
sollte vor einer URL-Referenz stehen ( <* href>
<* src>
<form action>
<object data>
…), da hiermit die Basis- URL festgelegt wird, anhand derer relative URLs aufgelöst werden.
<base
Tag kein Schließen gemäß der Spezifikation w3.org/TR/html5/document-metadata#the-base-element hat, also sollte es sein<base target="_parent" >
Verwenden Sie das Zielattribut:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
ist in Ordnung, aber die Frage hier bezieht sich auf einen Link, nicht auf das Ändern des Verhaltens aller Links auf iframe. Für mich ist das die richtige Antwort.
Sie können beliebige Optionen verwenden
bei nur übergeordneter Seite:
Wenn Sie alle Links zur übergeordneten Seite oder zum übergeordneten Iframe öffnen möchten , verwenden Sie den folgenden Code im Kopfabschnitt des Iframes:
<base target="_parent" />
ODER
Wenn Sie einen bestimmten Link zur übergeordneten Seite oder zum übergeordneten Iframe öffnen möchten , gehen Sie folgendermaßen vor:
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
ODER
im Falle eines verschachtelten Iframes:
Wenn Sie alle Links im Browserfenster öffnen möchten (Weiterleitung in die Browser-URL), verwenden Sie den folgenden Code im Kopfbereich von 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>
ODER
Wenn Sie einen bestimmten Link in das Browserfenster öffnen möchten (Weiterleitung in die Browser-URL), gehen Sie folgendermaßen vor:
<a href="http://specific.org" target="_top" >specific Link</a>
oder
<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>
Es gibt ein HTML-Element namens base
, mit dem Sie:
Geben Sie eine Standard-URL und ein Standardziel für alle Links auf einer Seite an:
<base target="_blank" />
Durch Angabe stellen _blank
Sie sicher, dass alle Links innerhalb des Iframes außerhalb geöffnet werden.
Wie bereits erwähnt, können Sie ein Zielattribut verwenden, das in XHTML jedoch technisch veraltet ist. Das lässt Sie mit Javascript, normalerweise so etwas wie parent.window.location
.
Versuchen Sie das target="_parent"
Attribut innerhalb der anchor tag
.
Wenn Sie iframe auf Ihrer Webseite verwenden, kann ein Problem auftreten, wenn Sie die gesamte Seite über einen HTML-Hyperlink (Ankertag) aus dem iframe ändern. Es gibt zwei Lösungen, um dieses Problem zu mindern.
Lösung 1. Sie können das Zielattribut des Ankertags verwenden, wie im folgenden Beispiel angegeben.
<a target="_parent" href="http://www.kriblog.com">link</a>
Lösung 2. Sie können auch eine neue Seite im übergeordneten Fenster von iframe mit JavaScript öffnen.
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
Denken Sie daran, dass ⇒ target="_parent"
in XHTML veraltet ist, in HTML 5.x jedoch weiterhin unterstützt wird.
Weitere Informationen finden Sie unter folgendem Link: http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
Die vielseitigste und browserübergreifendste Lösung besteht darin, die Verwendung des "base" -Tags zu vermeiden und stattdessen das Zielattribut der "a" -Tags zu verwenden:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
Das <base>
Tag ist weniger vielseitig und die Anforderungen der Browser an die Platzierung im Dokument sind inkonsistent, sodass mehr browserübergreifende Tests erforderlich sind. Abhängig von Ihrem Projekt und Ihrer Situation kann es schwierig oder sogar völlig unmöglich sein, die ideale browserübergreifende Platzierung des <base>
Tags zu erreichen.
Dies mit dem target="_parent"
Attribut des <a>
Tags zu tun, ist nicht nur browserfreundlicher, sondern ermöglicht Ihnen auch die Unterscheidung zwischen den Links, die Sie im iframe öffnen möchten, und denen, die Sie im übergeordneten Element öffnen möchten.
Yah, ich habe gefunden
<base target="_parent" />
Dies ist nützlich, um alle in iframe geöffneten iframe-Links zu öffnen.
Und
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
Dies können wir für die ganze Seite oder einen bestimmten Teil der Seite verwenden.
Vielen Dank für Ihre Hilfe.
Versuchen target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
dasselbe wie "_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>