HTML'de A öğesindeki (bağlantı bağlantısı) sekmeyi durdurma


152

<a href="...">A'nın herhangi bir tarayıcıda sekmeyle kapatılmasını iptal etmek mümkün müdür ? Bunu Javascript olmadan yapmak istiyorum.

Yanıtlar:


265

Bazı tarayıcılar bu tabindex="-1"özelliği destekler , ancak tümünü desteklemez , çünkü bu standart bir davranış değildir.


22
Ah harika! Teşekkürler! FF3.5, IE8 ve CH3 ile kontrol ettim ve her üçünde de çalışıyor. Milyonlarca kez teşekkürler!
Robert Koritnik

1
Bu konuda Endişeye gerek yok: zzzzBov devletler gibi burada HTML5 kurtarmak için geldi ve bu işlevselliği standardize. Şimdi suçlu tarayıcılar bunu özleyen tarayıcılar.
TechNyquist

1
Köprü üzerindeki sekmeyi devre dışı bırakmanın erişilebilirlik kurallarına (ör. Ekran okuyucu kullanan kişiler, vb.) Aykırı olduğunu unutmayın. Bunun kullanıcı tabanınız için bir sorun olmadığını biliyorsanız, iyi olması gerekir.
Ricardo Sanchez

73

Modern, HTML5 uyumlu tarayıcılar , değerinin öğenin sekmeli olmasını engelleyeceği [tabindex]özelliği destekler -1.

Değer negatif bir tamsayı ise
Kullanıcı aracısı öğenin odaklanmasına izin vermeli, ancak sıralı odakta gezinme kullanılarak öğeye erişilmesine izin vermemelidir.


1
Dokümantasyon alıntıları her zaman yardımcı olur. ;-) Bu bize bunu desteklemeyenlerin az sayıda olduğunu ve muhtemelen er ya da geç destekleyeceklerini söyler.
Robert Koritnik

15

Sekme durağı olmadan birden çok öğeyi hedeflemek istediğiniz öğeye bir JQuery işleyicisi uygulayabilirsiniz.

$(document).ready(function () {
    $('.class').attr('tabindex', '-1');
});

Bunu yapmanın bir yolu olurdu ....


6

Ben bunu javascript ile yapabileceğini düşünüyorum, window.onkeypressveya geçersiz onkeydownkıl, sekme düğmesini tuzak ve odak istenen sırada ayarlayın.


2
Ben özellikle yaklaşık bir yıl önce yanıtladı ve bu sorunu çözüldü biri kabul edilen diğer cevaplar kontrol ettim mi bilmiyorum olmadan Javascript kullanarak.
Robert Koritnik

2
OP ve kabul edilen yanıtı ele almasa bile alternatif çözümü takdir ediyorum. Aşağılayıcı olmaya gerek yok.
Anthony DiSanti

@Anthony DiSanti: Bu doğru, ama bu özel durumda hala bir şey daha iyi çalışırsa neden javascript başvurmak görmüyorum? Peki bu sorunun cevabı değilse neden burada? Boşver. Javascript genellikle belirli şeyler başka türlü yapılamazsa atılacak son adımdır. Sana hakaret etsem üzgünüm @Ammosi. Kaba olmak istememiştim. Geç cevap için teşekkürler.
Robert Koritnik

7
Standartlara dayalı bir HTML veya CSS çözümü varsa, javascript'ten kaçınmayı kabul ediyorum. Ancak, bu durumda yoktur. Orijinal posterin IE8 ve FF3.5'ten önce tarayıcıları desteklemesi gerekmiyordu, ancak çalışmalarım için IE6'ya geri destek vermem gerekiyor. Tabindex çözümü bu nedenle uygulanamaz. Tarayıcıda en büyük pazar payına sahip tek çalışma çözümünün sağlanması cesaretini kırmamalıdır.
Anthony DiSanti

4

hrefÖzelliği bağlantı etiketinizden kaldırın


ne yapamazsam?
Hakan Fıstık

Bu tür çözümleri önlemek için soruya rağmen javascript kullanmaya istekli iseniz, href niteliklerini kaldırmak için jquery belgesini şu gibi bir şeyle $('[href="whatever-the-url-is"]').removeAttr('href');
yükleyin

6
LOL href kaldırmak
quemeful
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.