Otwórz link w nowej karcie lub oknie [duplikat]

Czy można otworzyć link a href w nowej karcie zamiast w tej samej karcie?

<a href="http://your_url_here.html">Link</a>

person Rene    schedule 21.03.2013    source źródło
comment
Dlaczego to pytanie o HTML zostało oznaczone jako duplikat pytania o JavaScript?   -  person Phil    schedule 20.02.2016
comment
Za każdym razem, gdy używasz target=_blank, bądź świadomy możliwych ataków tabnabbingowych! Zobacz też: danielstjules.github.io/blankshield (Aby temu zapobiec, dodaj rel="noopener" do linków)   -  person Carl Ambroselli    schedule 22.03.2016
comment
nie jest duplikatem.   -  person Ilan Schemoul    schedule 08.07.2017


Odpowiedzi (4)


Powinieneś dodać target="_blank" i rel="noopener noreferrer" w tagu kotwicy.

Na przykład:

<a target="_blank" rel="noopener noreferrer" href="http://your_url_here.html">Link</a>

Dodanie rel="noopener noreferrer" nie jest obowiązkowe, ale jest to zalecany środek bezpieczeństwa. Więcej informacji można znaleźć w poniższych linkach.

Źródło:

person Nathan    schedule 21.03.2013
comment
_blank otwiera się w nowym oknie, a nie w nowej karcie. Edycja: po prostu próbowałem. Najwyraźniej to nieprawda. Potem zastanawiam się, jaka jest różnica z _tab - person Toon Casteele; 21.03.2013
comment
nie ma _tab... jest _nowy i _pusty - person Nathan; 21.03.2013
comment
Według w3schools również nie ma nowości: w3schools.com/tags/att_a_target.asp - person Toon Casteele; 21.03.2013
comment
_new działa dobrze...nawet jeśli nie ma go tam na liście... - person Nathan; 21.03.2013
comment
Podobnie _tab... Dokładnie o to mi chodzi. Zobacz reakcję @DarkCthulhu na moją odpowiedź na temat grup - person Toon Casteele; 21.03.2013
comment
_blank jest obsługiwane na podstawie dostawcy. Większość nowoczesnych przeglądarek domyślnie otwiera się w nowej karcie. Starsze przeglądarki, takie jak skarbiec IE, otwierają się w nowym oknie — albo dlatego, że nie mają funkcji z kartami, albo ponieważ ich domyślnym zachowaniem jest nowe okno. - person Larry; 31.05.2013
comment
Gdy nie używasz specjalnej nazwy, jak określono w linkach powyżej, cel jest nazwą okna (lub ramki), na którą kierujesz swój cel. Jeśli ustawisz go na _tab lub _new, otworzy się okno o tej nazwie. Jeśli użytkownik kliknie ten link, wróci do początkowej strony i kliknie inny link z tym samym celem, karta/okno otwarte po raz pierwszy powinny mieć wczytaną treść. - person umassthrower; 05.01.2015
comment
Wskazówka: bądź świadomy luki spowodowanej _blank. Więcej informacji medium.com/@jitbit/ - person Aistis; 05.05.2016
comment
@ToonCasteele Chociaż to, co mówisz, jest poprawne, MDN jest uważane za bardziej wiarygodne źródło niż W3Schools. (Powód, dla którego jest trochę długi do wyjaśnienia tutaj i może być łatwo znaleziony przez Google) - person StubbornShowaGuy; 29.09.2016
comment
Target=”_blank” - luka, wyjaśniona na przykładzie: mathiasbynens.github.io/rel-noopener - person BRap; 09.04.2018
comment
Luka target=_blank może tylko zmienić twoją window.location (nie może wykonać dowolnego JS, jak błędnie mówi linkowany artykuł Medium). noopener to rozwiązuje. W przypadku starszej przeglądarki potrzebny jest noreferrer, ale oznacza to, że strony, do których prowadzą linki, nie będą w stanie wiedzieć, skąd pochodzi ruch (choć nie ma to wpływu na SEO). - person now; 01.05.2019
comment
W przeglądarkach Chrome 49 i Opera 36, ​​Firefox 52, Desktop Safari 10.1+ i iOS Safari 10.3+ noreferrer nie jest już potrzebny. - person now; 01.05.2019

Nie powinieneś decydować, czy link ma otwierać się w nowej karcie, czy w nowym oknie, ponieważ docelowo wybór ten powinien być dokonany w ustawieniach przeglądarki użytkownika. Niektórzy ludzie lubią karty; niektóre jak nowe okna.

Użycie _blank spowoduje, że przeglądarka użyje nowej karty/okna, w zależności od konfiguracji przeglądarki użytkownika i sposobu kliknięcia linku (np. kliknięcie środkowym przyciskiem, Ctrl+kliknięcie lub zwykłe kliknięcie).

person Gauthier    schedule 21.03.2013
comment
W pełni zgadzam się z odebraniem decyzji użytkownikowi lub przeglądarce. Użytkownik będzie miał preferencję, do której jest przyzwyczajony, a to pozbawia go prawa do jego preferencji. Jednak biorąc to pod uwagę... zdarza się, że jest to potrzebne. (okna dialogowe drukowania itp.) - person avanderw; 27.11.2013
comment
Chociaż czuję, że jest to prawdą w wielu przypadkach, dla mniej technicznych użytkowników myślę (moim zdaniem), że to po prostu często nie jest prawdą. Niektórzy użytkownicy mogą potrzebować tej pomocy lub ryzykują, że nie będą wiedzieć, jak wrócić do strony, którą chcieli pozostawić otwartą. Moje dwa centy, aby spróbować spojrzeć na rzeczy z nieco większej perspektywy. - person matthewsheets; 30.01.2014
comment
Zgadzam się z nie powinno dla stron internetowych, ale pamiętaj, że nie cały kod HTML jest napisany dla stron internetowych. Myślałem o czymś dla własnej aplikacji internetowej, w której byłoby fajnie otworzyć kilka linków w nowych kartach bez uczenia wszystkich w biurze, jak ctrl+kliknąć. - person TecBrat; 14.03.2014
comment
Chociaż w większości zgadzam się z @gotson w tradycyjnych witrynach... staje się tak, że w przypadku aplikacji internetowych możesz nie chcieć, aby zewnętrzne linki zabijały Twoją aplikację. Dobrym przypadkiem jest nowa funkcja promocji aplikacji internetowej w przeglądarce Chrome... w której użytkownicy otrzymują program uruchamiający aplikacje bez chrome. W takim przypadku przejście do zewnętrznych linków i nawigacja po zewnętrznej witrynie będzie wymagało wielu naciśnięć przycisku wstecz, aby wrócić do aplikacji. - person Ray Foss; 16.03.2015
comment
Jak to jest tak wysoko oceniane, skoro nawet nie odpowiada na pytanie? - person Yay295; 09.09.2015
comment
Doceniam to, że otrzymało to wysokie oceny za oferowanie najlepszej praktyki polegającej na nieodradzaniu nowej karty/okna. Jednak po prostu miałem kontekst, w którym lepszym zachowaniem było właśnie to. W szczególności tworzę witrynę w GH Pages i są strony, na których chcę zaprosić czytelnika do szybkich poprawek. Jeśli link zostanie kliknięty, zostaną wysłane do repozytorium w celu dokonania edycji. Po zakończeniu edycji muszą cofnąć przeglądarkę o kilka kliknięć. Lub za pomocą _blank po prostu zamykają kartę. Pomaga im również zorientować się podczas edycji. - person Merovex; 26.10.2015
comment
Oczywiście nie zgadzam się, że jest to najlepsza praktyka i argumentuję, że zależy to całkowicie od przypadku użycia. Na przykład pracuję nad aplikacją internetową, w której użytkownik wykonuje większość swojej codziennej pracy, a posiadanie łącza nawigującego w tej samej zakładce byłoby okropne. Podobnie, gdybym miał stronę z samouczkiem/instrukcją, linkowałbym do powiązanych materiałów i nie chciałby nawigować w miejscu. Jeśli jednak strona jest przeznaczona tylko do użytku przez użytkownika, nawigacja w miejscu byłaby prawdopodobnie bardziej idealna. - person Spazmoose; 28.06.2017
comment
Popraw mnie, jeśli się mylę. Nie widzę opcji ustawienia otwartych linków w nowej karcie w przeglądarce safari na Macu. Tak więc użycie _blank jest nadal potrzebne/użyteczne w takich przypadkach. - person prabhu; 19.02.2018
comment
Trudno mi zaakceptować to jako najlepszą praktykę. Jakoś w przypadku aplikacji desktopowych nikt nie ma wątpliwości, że otwarcie nowego okna/karty vs. zmiana zawartości w istniejącej aplikacji jest wyłącznie decyzją projektanta interfejsu użytkownika. - person Red; 01.07.2018
comment
Myślę, że może to mieć również wpływ na SEO, jeśli poinstruujesz przeglądarkę, aby nie wysyłała strony odsyłającej, nie? - person Phil; 02.07.2019

ustaw atrybut target elementu <a> na "_tab"

EDYCJA: Działa, jednak W3Schools twierdzi, że nie ma takiego atrybutu docelowego: http://www.w3schools.com/tags/att_a_target.asp

EDIT2: Z tego, co wywnioskowałem z komentarzy. ustawienie celu na _blank przeniesie Cię do nowej karty lub okna (w zależności od ustawień przeglądarki). Wpisanie czegokolwiek poza jedną z poniższych spowoduje utworzenie nowej grupy kart (nie jestem pewien, jak to działa):

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window
framename   Opens the linked document in a named frame
person Toon Casteele    schedule 21.03.2013
comment
masz na myśli _puste lub _nowe... z tego co wiem, nie ma _tab - person Nathan; 21.03.2013
comment
Lol Właśnie to wypróbowałem i zadziałało. Zastanawiam się dlaczego... - person Toon Casteele; 21.03.2013
comment
W3Schools NIE jest W3C. Zobacz w3fools.com - person Jace Cotton; 21.03.2013
comment
Więc powiesz mi, że atrybuty, o których wspomniałem, są nieprawidłowe @Jacedc? - person Toon Casteele; 21.03.2013
comment
@Jacedc Możesz tam użyć wszystkiego zamiast _tab. Tworzy grupę okien. - person Anirudh Ramanathan; 21.03.2013
comment
Nie wszystko w W3Schools jest niepoprawne. Ale zanim powiedziałeś o W3C (The World Wide Web Consortium), a następnie połączyłeś się z W3Schools, które nie ma żadnego związku z W3C ani tworzeniem jakichkolwiek standardów internetowych. Ale widzę, że go zredagowałeś. :) - person Jace Cotton; 21.03.2013
comment
Tak, bo to wskazałeś i stoję poprawiony, dzięki za to :) - person Toon Casteele; 21.03.2013
comment
Jak otworzyć 2 linki, które mają _blank w 2 nowych kartach zamiast w tej samej nowej karcie? - person ACV; 15.09.2015
comment
#@ACV jeśli mają _blank jako cel, powinny znajdować się w osobnych kartach. Jeśli masz coś innego niż te wymienione powyżej (np.: _tab), nowe okno/karta będzie miało tę nazwę i oba zostaną otwarte w tym oknie/zakładce. - person drevicko; 25.08.2017

Możesz to po prostu zrobić, ustawiając target="_blank", w3schools ma przykład.

person Ehsan    schedule 21.03.2013
comment
proste i na temat, dzięki - person Emre; 01.08.2018
comment
Uważaj, nawet jeśli dodanie rel=noopener noreferrer jest opcjonalne, ma to problemy z bezpieczeństwem. Po prostu skopiuj zaakceptowaną odpowiedź lub przeczytaj wymienione tam linki, aby dowiedzieć się, dlaczego jest to potrzebne. - person Nick; 22.07.2019