Podsumowanie aktualnych odpowiedzi: _newnie ma żadnego specjalnego znaczenia. Ty też możesz pisać _white_little_lamb.
Álvaro González
10
@ x3ro Jak to źle powiedzieć, że „ _new” nie ma żadnego specjalnego znaczenia?
Álvaro González
3
@ ÁlvaroG.Vicario Miałem na myśli „Możesz pisać ... zamiast tego”. Ale myśląc o tym, argumentowałbym, że „nie ma specjalnego znaczenia” nie jest tym samym, co „wyraźnie zniechęca”, ale to może być moje dręczenie;)
fresskoma
5
Chciałbym przypomnieć wszystkim, że używanie target="_blank"bez rel="noopener"jest potencjalną luką w zabezpieczeniach. Wyszukaj, rel="noopener"aby dowiedzieć się więcej.
Poprawną nazwą kontekstu przeglądanie jest dowolny ciąg co najmniej jednego znaku, który nie rozpoczyna się od znaku U + 005F LOW LINE. (Nazwy rozpoczynające się znakiem podkreślenia są zarezerwowane dla specjalnych słów kluczowych).
Poprawną nazwą kontekstu przeglądania lub słowo kluczowe jest dowolny ciąg znaków, który jest albo prawidłowa nazwa kontekst przeglądania lub ASCII, który jest wielkości liter mecz do jednej: _blank, _self, _parent, albo _top.”- Źródło
Oznacza to, że nie ma takiego słowa kluczowego jak _neww HTML5, a nie w HTML4 (aw konsekwencji XHTML) . Oznacza to, że nie będzie spójnego zachowania, jeśli użyjesz tego jako wartości dla atrybutu docelowego.
Zalecenie bezpieczeństwa
Jak zauważyli Daniel i Michael w komentarzach, kiedy używasz targetu _blankwskazującego na niezaufaną stronę internetową, powinieneś dodatkowo ustawić rel="noopener". Zapobiega to zwijaniu się strony otwierającej z otwieraczem przez JavaScript. Zobacz ten post, aby uzyskać więcej informacji.
Usunięcie pogrubionego tekstu ze specyfikacji sprawia, że ten cytat brzmi myląco okrągło. Czytam to jako „A valid browsing context namelub słowo kluczowe to dowolny ciąg znaków, który jest albo a valid browsing context name…”
Alex Grin
6
@lyoshenka, @ x3ro: Pozwoliłem sobie dodać poprzedni akapit do cytatu. To powinno wyjaśnić zamieszanie.
mercator
5
@aesede: Przeczytaj specyfikację. Są to nie ważne, bo „my_custom_name” nie może być poprzedzona znakiem podkreślenia. Zatem „nowe” byłoby w porządku, ale „_new” nie jest!
Proszę zwrócić uwagę, dodając, że ludzie powinni również dodać rel="noopener noreferrer"powodu javascript luka atak ztarget="_blank"
Michael
126
Użycie target="_blank"sprawi, że przeglądarka utworzy nową kartę lub okno przeglądarki, gdy użytkownik kliknie łącze.
Używanie target="_new"jest technicznie nieprawidłowe zgodnie ze specyfikacjami, ale o ile wiem, każda przeglądarka będzie zachowywać się w ten sam sposób:
wyszuka kartę lub okno o nazwie kontekstowej „_new”
jeśli zostanie znaleziona karta / okno „_new”, adres URL zostanie do niego załadowany
jeśli nie zostanie znaleziony, tworzona jest nowa karta / okno z nazwą kontekstu „_new” i załadowanym do niego adresem URL
Uwaga target="_new"będzie zachowywać się dokładnie tak samo jak target="new", a drugi jest prawidłowym HTML, podczas gdy drugi jest nieprawidłowym HTML.
Dodając do tego pewne zamieszanie, w HTML4 targetatrybut był przestarzały. W HTML5 ta decyzja została cofnięta i jest to ponownie oficjalna część specyfikacji. Wszystkie przeglądarki obsługują targetbez względu na używaną wersję HTML, ale niektóre weryfikatory oznaczą użycie jako przestarzałe, jeśli twój typ dokumentu to HTML4.
Zasadniczo, jeśli mam dwa (lub więcej) linków target="_new", oba otworzą się na tej samej karcie, jeden nadpisując drugi?
art-solopov
4
@ art-solopov, o ile mi wiadomo, tak właśnie dzieje się w każdej przeglądarce. Jednak „_new” jest niedozwoloną wartością dla celu, więc nie rób tego.
Abhi Beckert
25
TL; DR USE _blank
Atrybut docelowy określa, gdzie otworzyć połączony dokument.
USAGE: target="xyz"[don't forget double quotes]
_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
PONIEWAŻ „_new” nie jest żadnym z tych, KTÓRE ZOSTANĄ PODDANE pod „nazwa ramki”, więc jeśli użytkownik kliknie to hiperłącze, nie otworzy nowej karty, zamiast zaktualizować istniejącą. Natomiast w _blank, jeśli użytkownik kliknie dwa razy, wówczas otworzą się 2 nowe karty.
Wiem, że to stare pytanie, a poprawna odpowiedź, użycie _blank, została wspomniana kilka razy, ale używanie <a target="somesite.com" target="_blank">Link</a>jest zagrożeniem dla bezpieczeństwa .
rozumiem, że target = whateverposzuka ramki / okna o tej nazwie. Jeśli nie zostanie znaleziony, otworzy się nowe okno o tej nazwie. Jeśli whatever == "_new"pojawi się tak, jakbyś używał, _blankz wyjątkiem .....
Użycie jednej z zastrzeżonych nazw docelowych ominie fazę „szukania”. Tak więc target = "_blank"na tuzinie linków otworzy się tuzin pustych okien, ale target = whateverna tuzinie linków otworzy się tylko jedno okno. target = "_new"na tuzin linków może dawać niestałe zachowanie. Nie próbowałem tego na kilku przeglądarkach, ale powinienem otworzyć tylko jedno okno.
Uwaga - pamiętaj, aby zawsze dołączać „cytaty” - przynajmniej w Chrome, target=_blank(bez cudzysłowów) NIE JEST TAKIE SAME, ponieważ target="_blank"(z cudzysłowami).
Ten ostatni otwiera każdy link w nowej karcie / oknie. Pierwsze (brakujące cytaty) otwiera pierwszy link, który klikniesz w jednej nowej karcie / oknie, a następnie zastępuje tę samą kartę / okno każdym kolejnym klikniętym linkiem (który jest również nazywany brakującymi cytatami).
Bardzo dobra uwaga. Natknąłem się na ten problem, gdy nie umieściłem _blank w cudzysłowie. Link, który kliknąłem z mojej nowo utworzonej „pustej” karty, polegał na pisaniu treści na tej karcie zamiast otwieraniu nowej karty. Umieszczenie _blank w cudzysłowie zmusza chrome do otwierania nowej karty za każdym razem.
Steve Scherer
Upewnij się także, że używasz „_blank”, a nie „_BLANK”. Chrome jest naprawdę wybredny w sprawach i nie otworzy nowej karty, używając „_BLANK” wiele razy.
Steve Scherer
5
_blank jako wartość docelowa za każdym razem odradza nowe okno,
_new odrodzi tylko jedno nowe okno.
Ponadto każdy link kliknięty wartością docelową _new zastąpi stronę załadowaną w poprzednio spawnowanym oknie.
Czy możesz wymienić, które przeglądarki honorują _newzgodnie z opisem?
Dima Tisnek
@ qarma To zachowanie jest takie, jak opisano we wszystkich przeglądarkach, które znam, _newnie jest magicznym słowem kluczowym, to tylko nazwa, jeśli istnieje okno o takiej nazwie, użyje go ponownie, w przeciwnym razie je otworzy. Kliknięcie wielu linków do tego okna spowoduje otwarcie różnych stron w nazwanym oknie, a nie otwarcie wielu nowych stron.
scragar
Specyfikacja faktycznie sugeruje przeglądarkom, że są one ignorekierowane na podkreślenie, ale nie są słowami kluczowymi. Nie ma sugestii, co powinna zrobić przeglądarka, która „ignoruje” niepoprawną nazwę docelową. Możliwości obejmują: (1) traktuj to jak „_blank” (2) traktuj to jak nazwę okna (tak jakby nie było nielegalnego podkreślenia) (3) traktuj to jak jawnie pustą nazwę okna (4) traktuj to jak tam nie był atrybutem docelowym. - Każda przeglądarka może wybrać dowolną interpretację.
Jesse Chisholm,
0
Atrybut docelowy łącza zmusza przeglądarkę do otwarcia strony docelowej w nowym oknie przeglądarki. Użycie _blankjako wartości docelowej spowoduje odrodzenie nowego okna za każdym razem, natomiast użycie _newspowoduje odrodzenie tylko jednego nowego okna, a każdy link kliknięty wartością docelową _newzastąpi stronę załadowaną w poprzednio odrodzonym oknie
Użycie _New jest przydatne podczas pracy na stronach, które są iframowane. Ponieważ target = "_ blank" nie załatwia sprawy i otwiera stronę w tym samym iframe ... target new jest najlepszym rozwiązaniem dla stron iframe. Tylko moje pięć centów.
_new
nie ma żadnego specjalnego znaczenia. Ty też możesz pisać_white_little_lamb
._new
” nie ma żadnego specjalnego znaczenia?target="_blank"
bezrel="noopener"
jest potencjalną luką w zabezpieczeniach. Wyszukaj,rel="noopener"
aby dowiedzieć się więcej.Odpowiedzi:
Użyj „_blank”
Zgodnie ze specyfikacją HTML5 :
Oznacza to, że nie ma takiego słowa kluczowego jak
_new
w HTML5, a nie w HTML4 (aw konsekwencji XHTML) . Oznacza to, że nie będzie spójnego zachowania, jeśli użyjesz tego jako wartości dla atrybutu docelowego.Zalecenie bezpieczeństwa
Jak zauważyli Daniel i Michael w komentarzach, kiedy używasz targetu
_blank
wskazującego na niezaufaną stronę internetową, powinieneś dodatkowo ustawićrel="noopener"
. Zapobiega to zwijaniu się strony otwierającej z otwieraczem przez JavaScript. Zobacz ten post, aby uzyskać więcej informacji.źródło
valid browsing context name
lub słowo kluczowe to dowolny ciąg znaków, który jest albo avalid browsing context name
…”rel="noopener noreferrer"
powodu javascript luka atak ztarget="_blank"
Użycie
target="_blank"
sprawi, że przeglądarka utworzy nową kartę lub okno przeglądarki, gdy użytkownik kliknie łącze.Używanie
target="_new"
jest technicznie nieprawidłowe zgodnie ze specyfikacjami, ale o ile wiem, każda przeglądarka będzie zachowywać się w ten sam sposób:Uwaga
target="_new"
będzie zachowywać się dokładnie tak samo jaktarget="new"
, a drugi jest prawidłowym HTML, podczas gdy drugi jest nieprawidłowym HTML.Dodając do tego pewne zamieszanie, w HTML4
target
atrybut był przestarzały. W HTML5 ta decyzja została cofnięta i jest to ponownie oficjalna część specyfikacji. Wszystkie przeglądarki obsługujątarget
bez względu na używaną wersję HTML, ale niektóre weryfikatory oznaczą użycie jako przestarzałe, jeśli twój typ dokumentu to HTML4.źródło
target="_new"
, oba otworzą się na tej samej karcie, jeden nadpisując drugi?TL; DR
USE _blank
Atrybut docelowy określa, gdzie otworzyć połączony dokument.
PONIEWAŻ „_new” nie jest żadnym z tych, KTÓRE ZOSTANĄ PODDANE pod „nazwa ramki”, więc jeśli użytkownik kliknie to hiperłącze, nie otworzy nowej karty, zamiast zaktualizować istniejącą. Natomiast w _blank, jeśli użytkownik kliknie dwa razy, wówczas otworzą się 2 nowe karty.
źródło
Wiem, że to stare pytanie, a poprawna odpowiedź, użycie
_blank
, została wspomniana kilka razy, ale używanie<a target="somesite.com" target="_blank">Link</a>
jest zagrożeniem dla bezpieczeństwa .Jest on zalecany ( korzyści wydajności ) do wykorzystania:
źródło
Być może wcześniej o to zapytano, ale:
„każdy link, który określa target =" _ nowy ", szuka i znajduje okno według nazwy i otwiera się w nim.
Jeśli użyjesz target = "_ blank," nowe okno zostanie utworzone za każdym razem, na górze bieżącego okna. "
stąd: http://thedesignspace.net/MT2archives/000316.html
źródło
target="_blank"
otwiera nową kartę w większości przeglądarek.źródło
rozumiem, że
target = whatever
poszuka ramki / okna o tej nazwie. Jeśli nie zostanie znaleziony, otworzy się nowe okno o tej nazwie. Jeśliwhatever == "_new"
pojawi się tak, jakbyś używał,_blank
z wyjątkiem .....Użycie jednej z zastrzeżonych nazw docelowych ominie fazę „szukania”. Tak więc
target = "_blank"
na tuzinie linków otworzy się tuzin pustych okien, aletarget = whatever
na tuzinie linków otworzy się tylko jedno okno.target = "_new"
na tuzin linków może dawać niestałe zachowanie. Nie próbowałem tego na kilku przeglądarkach, ale powinienem otworzyć tylko jedno okno.Przynajmniej tak interpretuję zasady.
źródło
Uwaga - pamiętaj, aby zawsze dołączać „cytaty” - przynajmniej w Chrome,
target=_blank
(bez cudzysłowów) NIE JEST TAKIE SAME, ponieważtarget="_blank"
(z cudzysłowami).Ten ostatni otwiera każdy link w nowej karcie / oknie. Pierwsze (brakujące cytaty) otwiera pierwszy link, który klikniesz w jednej nowej karcie / oknie, a następnie zastępuje tę samą kartę / okno każdym kolejnym klikniętym linkiem (który jest również nazywany brakującymi cytatami).
źródło
Ponadto każdy link kliknięty wartością docelową _new zastąpi stronę załadowaną w poprzednio spawnowanym oknie.
Możesz kliknąć tutaj Kiedy użyć _blank lub _new, aby wypróbować to sam.
źródło
_new
zgodnie z opisem?_new
nie jest magicznym słowem kluczowym, to tylko nazwa, jeśli istnieje okno o takiej nazwie, użyje go ponownie, w przeciwnym razie je otworzy. Kliknięcie wielu linków do tego okna spowoduje otwarcie różnych stron w nazwanym oknie, a nie otwarcie wielu nowych stron.ignore
kierowane na podkreślenie, ale nie są słowami kluczowymi. Nie ma sugestii, co powinna zrobić przeglądarka, która „ignoruje” niepoprawną nazwę docelową. Możliwości obejmują: (1) traktuj to jak „_blank” (2) traktuj to jak nazwę okna (tak jakby nie było nielegalnego podkreślenia) (3) traktuj to jak jawnie pustą nazwę okna (4) traktuj to jak tam nie był atrybutem docelowym. - Każda przeglądarka może wybrać dowolną interpretację.Atrybut docelowy łącza zmusza przeglądarkę do otwarcia strony docelowej w nowym oknie przeglądarki. Użycie
_blank
jako wartości docelowej spowoduje odrodzenie nowego okna za każdym razem, natomiast użycie_new
spowoduje odrodzenie tylko jednego nowego okna, a każdy link kliknięty wartością docelową_new
zastąpi stronę załadowaną w poprzednio odrodzonym oknieźródło
Aby otworzyć link w nowej karcie / oknie, którego użyjesz
<a target="_blank">
.wartość
_blank
= ukierunkowany kontekst przeglądania: nowy: zakładka lub okno w zależności od ustawień przeglądaniawartość
_new
= niepoprawny; brak takiej wartości w HTML5 dla atrybutu target na elemencieatrybut target z wszystkimi jego wartościami na elemencie: demo wideo
źródło
Użycie _New jest przydatne podczas pracy na stronach, które są iframowane. Ponieważ target = "_ blank" nie załatwia sprawy i otwiera stronę w tym samym iframe ... target new jest najlepszym rozwiązaniem dla stron iframe. Tylko moje pięć centów.
źródło