target = “_ blank” ile target = “_ new”


512

Arasındaki fark nedir <a target="_new">ve <a target="_blank">yeni bir sekmede / pencerede bir bağlantı açmak istiyorsam hangisini kullanmalıyım?


73
Mevcut anws'ların özeti: _newözel bir anlamı yoktur. Siz de yazabilirsiniz _white_little_lamb.
Álvaro González

10
@ x3ro " _new" özel bir anlamı olmadığını söylemek nasıl yanlış yapar?
Álvaro González

3
@ ÁlvaroG.Vicario "Yerine yazabilirsiniz ..." ifadesinden bahsediyordum. Ama bunu düşünerek, "özel bir anlamı yok" un "açıkça cesareti kırılmış" ile aynı olmadığını, ama bu beni
nitpicking

5
Herkese, target="_blank"olmadan kullanmanın rel="noopener"potansiyel bir güvenlik açığı olduğunu hatırlatmak isterim . rel="noopener"Daha fazla bilgi edinmek için arayın .
Flimm

Yanıtlar:


651

Boşluk kullan"

Göre HTML5 Spec :

Bir geçerli tarama bağlam adı U + 005F DÜŞÜK HAT karakteri ile başlamıyorsa en az bir karakterle herhangi bir dizedir. (Alt çizgi ile başlayan isimler özel anahtar kelimeler için ayrılmıştır.)

Bir geçerli tarama bağlam adı veya anahtar kelime ya geçerli bir tarama bağlam adıdır herhangi bir dize olan veya biri için bir ASCII harf duyarsız maç: _blank, _self, _parent veya _top." - Kaynak

Bu _new, HTML5'teki gibi bir anahtar kelimenin olmadığı ve HTML4'te (ve sonuç olarak XHTML'de) olmadığı anlamına gelir . Bu, bunu hedef özellik için bir değer olarak kullanırsanız hiçbir tutarlı davranış olmayacağı anlamına gelir.

Güvenlik önerisi

Daniel ve Michael'ın yorumlarda belirttiği gibi, _blankgüvenilmeyen bir web sitesine işaret eden hedefi kullanırken ek olarak ayarlamanız gerekir rel="noopener". Bu, açılış sitesinin JavaScript aracılığıyla açıcıyla uğraşmasını önler. Daha fazla bilgi için bu gönderiye bakın .


7
Cesur metni spesifikasyondan çıkarmak, bu alıntıyı kafa karıştırıcı bir şekilde dairesel hale getirir. Ben "A valid browsing context nameveya anahtar kelime a valid browsing context nameveya .... herhangi bir dize " olarak okudum
Alex Grin

6
@lyoshenka, @ x3ro: Bir önceki paragrafı alıntıya ekleme özgürlüğünü aldım. Bu karışıklığı ortadan kaldırmalıdır.
mercator

5
@aesede: Spesifikasyonu okuyun. Bunlar değil "my_custom_name" bir alt çizgi öneki olmayabilir çünkü geçerli. Böylece "yeni" iyi olurdu, ama "_new" iyi değil!
fresskoma

7
Güvenlik açısından bu önemli bir okuma mathiasbynens.github.io/rel-noopener
Daniel F

6
İnsanlar da eklemek gerektiğini eklemeyi düşünün lütfen rel="noopener noreferrer"nedeniyle JavaScript saldırı güvenlik açığının aittarget="_blank"
Michael

126

Kullanmak target="_blank", tarayıcıya kullanıcı bağlantıyı tıkladığında yeni bir tarayıcı sekmesi veya penceresi oluşturmasını söyleyecektir.

Kullanımı target="_new"teknik özelliklere göre geçersizdir, ancak bildiğim kadarıyla her tarayıcı aynı şekilde davranacaktır:

  • "_new" içerik adına sahip bir sekme veya pencere arayacaktır
  • bir "_new" sekmesi / penceresi bulunursa, URL buna yüklenir
  • bulunmazsa, bağlam adı "_new" olan yeni bir sekme / pencere oluşturulur ve URL, içine yüklenir

Not target="_new"tam olarak aynı şekilde davranacaktır target="new"ve ikincisi geçersiz HTML iken, ikincisi geçerli HTML'dir.

Buna biraz karışıklık ekleyerek, HTML4'te targetözellik kullanımdan kaldırıldı. HTML5'te bu karar geri alındı ​​ve spesifikasyonun bir kez daha resmi bir parçası. targetHangi tarayıcıyı kullanıyor olursanız olun tüm tarayıcılar desteklenir , ancak bazı doğrulayıcılar doküman türünüz HTML4 ise kullanımı kullanımdan kaldırılmış olarak işaretler.


4
Yani, temelde, iki (veya daha fazla) bağlantım varsa target="_new", ikisi de aynı sekmede açılır, biri diğerinin üzerine yazılır?
art-solopov

4
@ art-solopov bildiğim kadarıyla, evet her tarayıcıda olacak. Ancak "_new" bir hedef için geçersiz bir değerdir, bu yüzden bunu yapmayın.
Abhi Beckert

25

TL; DR
USE _blank

Target özniteliği, bağlı belgenin nerede açılacağını belirtir.

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

SINCE "_new" bu BT "framename" ALTINDA OLMAYACAKTIR, bu nedenle bir kullanıcı bu köprüyü yeniden tıklarsa yeni bir sekme açmaz, bunun yerine mevcut sekmeyi günceller. Oysa _blank'de kullanıcı iki kez tıklarsa 2 yeni sekme açılır.




12

target="_blank" çoğu tarayıcıda yeni bir sekme açar.


12

o target = whateveradı taşıyan bir çerçeve / pencere arayacak olan benim anlayışım . Bulunamazsa, bu adla yeni bir pencere açar. Eğer whatever == "_new", aynen kullandığınız gibi görünecektir _blank.....

Ayrılmış hedef adlarından birinin kullanılması "görünümlü" aşamasını atlayacaktır. Yani, target = "_blank"bir düzine bağlantıda bir düzine boş pencere açılır, ancak target = whateverbir düzine bağlantıda sadece bir pencere açılır. target = "_new"bir düzine bağlantıda tutarsız davranış verebilir. Birkaç tarayıcıda denemedim, ancak sadece bir pencere açmalıyım.

En azından kuralları bu şekilde yorumluyorum.


9

Dikkat - her zaman "tırnak işaretleri" eklemeyi unutmayın - en azından Chrome'da, target=_blank(tırnak işaretleri olmadan) AYNI DEĞİLDİR target="_blank"(tırnak işaretleri ile).

İkincisi, her bağlantıyı yeni bir sekmede / pencerede açar. Önceki (eksik tırnak işaretleri), tıkladığınız ilk bağlantıyı yeni bir sekmede / pencerede açar, ardından tıklattığınız her bağlantıyla aynı sekmenin / pencerenin üzerine yazar (eksik tırnaklarla da adlandırılır).


Çok iyi bir nokta. _Blank'ı tırnak içine almadığım zaman bu sorunla karşılaştım. Yeni oluşturduğum "boş" sekmemden tıkladığım bağlantı, yeni bir sekme açmak yerine o sekme içinde içerik yazmaktı. _Blank değerini tırnak işaretleri içine almak, chrome'u her seferinde yeni bir sekme açmaya zorlar.
Steve Scherer

Ayrıca, "_BLANK" yerine "_blank" kullandığınızdan emin olun. Chrome aslında dava konusunda telaşlı ve "_BLANK" kullanarak birden çok kez yeni bir sekme açmıyor.
Steve Scherer

5
  • Hedef değer olarak _blank her seferinde yeni bir pencere oluşturacak,
  • _new yalnızca bir pencere açacaktır.

Ayrıca, _new hedef değeri ile tıklanan her bağlantı, önceden oluşturulan pencereye yüklenen sayfanın yerini alacaktır.

Bunu kendiniz denemek için _blank veya _new ne zaman kullanılır ?


_newAçıklandığı gibi hangi tarayıcıların onurlandırıldığını listeleyebilir misiniz ?
Dima Tisnek

@qarma Bu davranış bildiğim tüm tarayıcılarda anlatıldığı gibi _newbüyülü bir anahtar kelime değil, sadece bir isim, eğer bu ada sahip bir pencere varsa onu tekrar kullanacak, aksi takdirde açacak. Bu pencere için birden çok bağlantı tıklandığında, birden çok yeni sayfa açmak yerine, adlandırılan pencerede farklı sayfalar açılır.
scragar

Spesifikasyon, tarayıcılara aslında ignorealtı çizili olarak başlayan ancak anahtar kelime olmayan hedefleri önermektedir . Bir tarayıcının geçersiz bir hedef adı "yoksaydığı" zaman ne yapması gerektiği konusunda bir öneri yoktur. Olasılıklar şunlardır: (1) "_blank" gibi davran (2) bir pencere adı gibi davran (yasadışı bir alt çizgi yokmuş gibi) (3) açıkça boş bir pencere adı gibi davran (4) orada olduğu gibi davran hedef özellik değildi. - Herhangi bir tarayıcı yorumlardan herhangi birini seçebilir.
Jesse Chisholm

0

Bir bağlantının target özelliği, tarayıcıyı hedef sayfayı yeni bir tarayıcı penceresinde açmaya zorlar. Kullanılması _blankkullanırken bir hedef değer olarak yeni bir penceresi her zaman doğacaktır _newsadece spawn yeni bir pencere ve bir hedef değer ile tıklandığında her bağlantıyı olacak _newönceden olurken pencerede yüklenen sayfayı yerini alacak


0

Bir bağlantıyı yeni bir sekmede / pencerede açmak için kullanacaksınız <a target="_blank">.

value _blank= hedeflenen tarama içeriği: tarama ayarlarınıza bağlı olarak yeni bir: sekme veya pencere

değer _new= geçerli değil; bir öğedeki hedef özellik için HTML5'te böyle bir değer yok

öğedeki tüm değerlerine sahip hedef özellik: video demosu


-1

_New kullanımı, Iframed olan sayfalarda çalışırken kullanışlıdır. Target = "_ blank" hile yapmadığından ve sayfayı aynı iframe'de açtığından ... yeni hedef, Iframe Sayfaları için en iyi çözümdür. Sadece beş sentim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.