Pracuję nad projektem HTML i nie mogę dowiedzieć się, jak otworzyć link w nowej karcie bez javascript.
Wiem już, że <a href="http://www.WEBSITE_NAME.com"></a>
otwiera link w tej samej zakładce. Jakieś pomysły, jak otworzyć go w nowym?
Pracuję nad projektem HTML i nie mogę dowiedzieć się, jak otworzyć link w nowej karcie bez javascript.
Wiem już, że <a href="http://www.WEBSITE_NAME.com"></a>
otwiera link w tej samej zakładce. Jakieś pomysły, jak otworzyć go w nowym?
Odpowiedzi:
Ustaw atrybut „target” linku na _blank
:
<a href="#" target="_blank" rel="noopener noreferrer">Link</a>
Edycja: inne przykłady można znaleźć tutaj: http://www.w3schools.com/tags/att_a_target.asp
(Uwaga: poprzednio zasugerowałem blank
zamiast, _blank
ponieważ jeśli zostanie użyty, otworzy nową kartę, a następnie użyje tej samej karty, jeśli link zostanie kliknięty ponownie. Jednak dzieje się tak tylko dlatego, jak wskazał GolezTrol, że odnosi się do nazwy a ramki / okna, który zostałby ustawiony i użyty po ponownym naciśnięciu łącza w celu otwarcia go na tej samej karcie).
Zagadnienie bezpieczeństwa!
Ma rel="noopener noreferrer"
to na celu uniemożliwienie nowo otwartej karcie złośliwego modyfikowania oryginalnej karty. Aby uzyskać więcej informacji o tej podatności, zobacz następujące zasoby:
blank
będzie nazwą ramy lub okna. Może się wydawać, że działa, ponieważ nowe okno lub karta prawdopodobnie zostanie otwarte, gdy nie istnieje żadne z nazwą „puste”, ale drugie kliknięcie linku powinno ponownie otworzyć stronę w tej samej karcie zamiast otwierać kolejną.
blank
ciebie równie dobrze można by użyć foo
, choć w _blank
rzeczywistości ma on specjalne znaczenie. Nie mogę znaleźć żadnych informacji, które mogłyby udowodnić inaczej. Czy możesz?
_blank
będzie dobrze; linki otworzą się na innej karcie. Jeśli określisz nazwę bez podkreślenia (np. blank
), Linki otworzą się na tej samej karcie.
Użyj jednego z nich zgodnie ze swoimi wymaganiami.
Otwórz połączony dokument w nowym oknie lub karcie:
<a href="xyz.html" target="_blank"> Link </a>
Otwórz połączony dokument w tej samej ramce, w której został kliknięty (jest to ustawienie domyślne):
<a href="xyz.html" target="_self"> Link </a>
Otwórz połączony dokument w ramce nadrzędnej:
<a href="xyz.html" target="_parent"> Link </a>
Otwórz połączony dokument w pełnej części okna:
<a href="xyz.html" target="_top"> Link </a>
Otwórz połączony dokument w nazwanej ramce:
<a href="xyz.html" target="framename"> Link </a>
target="_blank"
istnieje luka, o której możesz przeczytać w mathiasbynens.github.io/rel-noopener
Jeśli chcesz wykonać polecenie dla całej witryny, zamiast wykonywać je po każdym linku. Wypróbuj to miejsce w nagłówku witryny i bingo.
<head>
<title>your text</title>
<base target="_blank" rel="noopener noreferrer">
</head>
mam nadzieję że to pomoże
Użyj target="_blank"
:
<a href="http://www.example.com/" target="_blank" rel="noopener noreferrer">This will open in a new window!</a>
Kiedy stosować target='_blank'
:
Wersja HTML (niektóre urządzenia jej nie obsługują):
<a href="http://chriscoyier.net" target="_blank">This link will open in new window/tab</a>
Wersja JavaScript dla wszystkich urządzeń:
Zastosowanie rel = „external” jest całkowicie poprawne
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$('a[rel="external"]').attr('target', '_blank');
</script>
i dla Jquery można spróbować z poniższym:
$("#content a[href^='http://']").attr("target","_blank");
Jeśli ustawienia przeglądarki nie pozwalają na otwieranie w nowych oknach:
href = "google.com";
onclick="window.open (this.href, ''); return false";
target="_blank"
atrybut wykona zadanie. Tylko nie zapomnij dodać, rel="noopener noreferrer"
aby rozwiązać potencjalną lukę. Więcej na ten temat tutaj: https://dev.to/ben/the-targetblank-vulnerability-by-example
<a href="https://www.google.com/" target="_blank" rel="noopener noreferrer">Searcher</a>
Możesz użyć:
<a href="http://www.WEBSITE_NAME.com" target="_blank"> Website</a>
Jednak powyższe czynią twoją witrynę podatną na ataki phishingowe. Możesz temu zapobiec w niektórych przeglądarkach, dodając rel = "noopener noreferrer" do swojego linku. Po dodaniu powyższy przykład staje się:
<a href="http://www.WEBSITE_NAME.com" rel="noopener noreferrer" target="_blank">Website.com</a>
sprawdź więcej informacji: https://www.thesitewizard.com/html-tutorial/open-links-in-new-window-or-tab.shtml
Możesz to zrobić w następujący sposób:
<a href="https://duckduckgo.com/" target="_blank" rel="noopener noreferrer">Open Duck</a>
Zobacz także następujący adres URL w MDN, aby uzyskać więcej informacji na temat bezpieczeństwa i prywatności:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Security_and_privacy
który z kolei zawiera link do dobrego artykułu o nazwie Target = "_ blank" - najbardziej niedoceniana luka w historii :
https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/
<a href="url" target="_blank">...</a>