<a href="http://google.com">strona Google</a> W języku HTML zdefiniowano odnośnik do strony internetowej. Aby strona otwierała się w nowym oknie lub...
<a href="http://google.com">strona Google</a>W języku HTML zdefiniowano odnośnik do strony internetowej. Aby strona otwierała się w nowym oknie lub zakładce przeglądarki, należy dopisać do definicji odnośnika atrybut
A. rel = "external"
B. rel = "next"
C. target = "_blank"
D. target = "_parent"
Pytanie z egzaminu CKE, czerwiec 2019 (arkusz EE.09-X-19.06).
Atrybut target = "_blank" jest właściwym sposobem ustawienia odnośnika tak, aby po kliknięciu otworzył się w nowej karcie albo w nowym oknie przeglądarki. W praktyce przeglądarka sama decyduje, czy będzie to karta czy osobne okno, zależnie od ustawień użytkownika. Poprawny zapis wygląda np. tak: <a href="http://google.com" target="_blank">strona Google</a>. Atrybut href określa adres docelowy, a target mówi, gdzie ten adres ma zostać otwarty. W HTML warto też pamiętać o dobrej praktyce bezpieczeństwa: przy linkach otwieranych w nowej karcie często dopisuje się rel="noopener noreferrer", szczególnie gdy prowadzą do obcej domeny. Zapis byłby wtedy taki: <a href="http://google.com" target="_blank" rel="noopener noreferrer">strona Google</a>. Moim zdaniem to jeden z tych drobiazgów w HTML, które często pojawiają się w realnej pracy, bo linki do zewnętrznych serwisów, dokumentacji czy paneli klienta zwykle otwiera się właśnie osobno, żeby użytkownik nie zgubił bieżącej strony.
W tym pytaniu łatwo pomylić dwa różne typy atrybutów używanych w znaczniku a. Atrybut rel opisuje relację między aktualnym dokumentem a stroną, do której prowadzi link, ale nie steruje miejscem otwarcia odnośnika. Wartość rel="next" może oznaczać, że link prowadzi do następnej strony w pewnej sekwencji, na przykład w paginacji artykułów. Nie spowoduje jednak otwarcia strony w nowej karcie. Podobnie rel="external" informuje, że odnośnik prowadzi do zasobu zewnętrznego, czyli poza bieżący serwis, ale samo w sobie też nie zmienia zachowania przeglądarki przy kliknięciu. To jest częsty błąd myślowy: skoro link jest „zewnętrzny”, to ktoś zakłada, że automatycznie otworzy się osobno. HTML tak nie działa.
Atrybut target rzeczywiście odpowiada za kontekst otwarcia strony, ale wartość _parent ma inne znaczenie niż _blank. target="_parent" odnosi się głównie do sytuacji z ramkami, czyli np. iframe, i powoduje otwarcie dokumentu w nadrzędnym kontekście przeglądania. To nie jest standardowy sposób otwierania linku w nowej zakładce. Do tego służy konkretnie target="_blank". Z mojego doświadczenia najlepiej zapamiętać to tak: rel opisuje charakter relacji linku, a target wskazuje miejsce otwarcia linku. Dopiero połączenie href z target="_blank" daje oczekiwany efekt użytkowy.
Atrybut target rzeczywiście odpowiada za kontekst otwarcia strony, ale wartość _parent ma inne znaczenie niż _blank. target="_parent" odnosi się głównie do sytuacji z ramkami, czyli np. iframe, i powoduje otwarcie dokumentu w nadrzędnym kontekście przeglądania. To nie jest standardowy sposób otwierania linku w nowej zakładce. Do tego służy konkretnie target="_blank". Z mojego doświadczenia najlepiej zapamiętać to tak: rel opisuje charakter relacji linku, a target wskazuje miejsce otwarcia linku. Dopiero połączenie href z target="_blank" daje oczekiwany efekt użytkowy.