Odpowiedzi:
Odkryłem, że najlepszym rozwiązaniem było użycie tagu podstawowego . Dodaj następujący tekst do nagłówka strony w ramce iframe:
<base target="_parent">
Spowoduje to załadowanie wszystkich linków na stronie w oknie nadrzędnym. Jeśli chcesz, aby Twoje linki ładowały się w nowym oknie, użyj:
<base target="_blank">
Ten tag jest w pełni obsługiwany we wszystkich przeglądarkach.
<base target>
powinien pojawić się wcześniej <a href>
, ponieważ ustawia domyślny kontekst przeglądania dla następujących linków; <base href>
powinien <* href>
<* src>
<form action>
<object data>
znajdować się przed dowolnym odwołaniem do adresu URL ( …), ponieważ ustawia podstawowy adres URL, względem którego są rozwiązywane względne adresy URL.
<base
tag nie ma zamknięcia zgodnie ze specyfikacją w3.org/TR/html5/document-metadata#the-base-element, więc powinien być<base target="_parent" >
Użyj atrybutu target:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
jest w porządku, ale pytanie tutaj dotyczy jednego linku, a nie zmiany zachowania wszystkich linków w ramce iframe. Dla mnie to poprawna odpowiedź.
Możesz użyć dowolnych opcji
w przypadku tylko strony nadrzędnej:
jeśli chcesz otworzyć wszystkie łącza do strony nadrzędnej lub nadrzędnego elementu iframe, użyj następującego kodu w sekcji head elementu iframe:
<base target="_parent" />
LUB
jeśli chcesz otworzyć określony link do strony nadrzędnej lub nadrzędnej ramki pływającej, użyj następującego sposobu:
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
LUB
w przypadku zagnieżdżonego elementu iframe:
Jeśli chcesz otworzyć wszystkie łącza do okna przeglądarki (przekierowanie w adresie URL przeglądarki), użyj następującego kodu w sekcji nagłówka 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>
LUB
jeśli chcesz otworzyć określony link do okna przeglądarki (przekierowanie w adresie URL przeglądarki), skorzystaj z następującego sposobu:
<a href="http://specific.org" target="_top" >specific Link</a>
lub
<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>
Istnieje element HTML o nazwie, base
który pozwala:
Podaj domyślny adres URL i domyślny cel dla wszystkich linków na stronie:
<base target="_blank" />
Określając _blank
, upewnij się, że wszystkie linki w ramce iframe zostaną otwarte na zewnątrz.
Jak wspomniano, możesz użyć atrybutu target, ale technicznie był on przestarzały w XHTML. To pozostawia cię przy użyciu javascript, zwykle coś takiego parent.window.location
.
Jeśli używasz elementu iframe na swojej stronie internetowej, możesz napotkać problem podczas zmiany całej strony za pomocą hiperłącza HTML (tag kotwicy) z elementu iframe. Istnieją dwa rozwiązania w celu złagodzenia tego problemu.
Rozwiązanie 1. Możesz użyć atrybutu target tagu zakotwiczenia, jak podano w poniższym przykładzie.
<a target="_parent" href="http://www.kriblog.com">link</a>
Rozwiązanie 2. Możesz także otworzyć nową stronę w oknie nadrzędnym z iframe z JavaScript.
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
Pamiętaj, że ⇒ target="_parent"
jest przestarzałe w XHTML, ale nadal jest obsługiwane w HTML 5.x.
Więcej można przeczytać pod następującym linkiem http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
Najbardziej wszechstronnym i najbardziej uniwersalnym rozwiązaniem dla różnych przeglądarek jest uniknięcie użycia znacznika „base”, a zamiast tego użycie atrybutu target znaczników „a”:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>
Tag jest mniej wszechstronny i przeglądarek są niespójne w ich wymaganiach dotyczących jego umieszczenia w dokumencie, wymagając więcej badań w różnych przeglądarkach. W zależności od projektu i sytuacji osiągnięcie idealnego położenia w różnych przeglądarkach może być trudne lub nawet całkowicie niewykonalne<base>
znacznika w .
Wykonanie tego z target="_parent"
atrybutem <a>
tagu jest nie tylko bardziej przyjazne dla przeglądarki, ale pozwala również rozróżnić łącza, które chcesz otworzyć w ramce iframe, i te, które chcesz otworzyć w elemencie nadrzędnym.
Tak, znalazłem
<base target="_parent" />
Jest to przydatne do otwierania wszystkich łączy iframe otwartych w iframe.
I
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
Możemy to wykorzystać dla całej strony lub określonej części strony.
Dziękuję wszystkim za pomoc.
Próbować target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
to samo co "_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>