Mengapa CTRL-klik tidak membuka beberapa tautan di tab baru?

18

Terkadang saat menjelajah, saya akan ctrl-klik tautan untuk membukanya di tab baru. Namun, alih-alih membuka di tab baru, itu akan diklik dan diramban di tab saat ini seolah-olah saya telah mengklik secara normal tanpa menahan ctrl. Saya yakin saya memegang ctrl sepenuhnya dan tidak ada kesalahan dengan keyboard atau mouse.

Terkadang, tab baru akan dibuka dengan tautan tetapi tab saat ini juga akan meramban ke tautan secara bersamaan.

Coldblackice
sumber
3
Mungkin itu bukan tautan yang sebenarnya, dalam arti bahwa mungkin "tautan" menggunakan onclickoperasi yang dapat mengacaukan klik ctrl +. Bisakah Anda memberikan contoh spesifik? meta.stackoverflow.com/questions/276138/…
imtheman
@ Imtheman Poin bagus, namun, sepertinya tidak demikian, setidaknya dalam contoh yang saya lihat. Saya tahu ini karena saya selalu mengarahkan mouse saya di atas tautan sebelumnya untuk memverifikasi bahwa itu menunjukkan URL di bilah status. Contohnya ada di sini: nationaljournal.com/white-house/… Di kolom kiri / bar, tautan ke cerita lain tampaknya merupakan URL mereka sendiri, diverifikasi bahkan dengan melompat ke lokasi mereka di sumbernya, namun, mengklik ctrl tidak bekerja, alih-alih bertindak seolah-olah ctrl tidak ditahan.
Coldblackice
Jika Anda melihat kode sumber untuk situs itu, Anda akan melihat ini untuk salah satu tautan:<a class="primary" href="/superuser//congress" onclick="var x=&quot;.tl(&quot;;s_objectID=&quot;http://www.nationaljournal.com/congress_1&quot;;return this.s_oc?this.s_oc(e):true">Congress</a>
imtheman
1
Meskipun memiliki hrefatribut, itu ditimpa oleh event onclick.
Imtheman
1
Saya menulis addon Firefox untuk memperbaiki masalah ini. github.com/danielnixon/link-fixer
danielnixon

Jawaban:

8

JavaScript di belakang layar

Ini terjadi ketika pengembang halaman web tersebut mencegat klik mouse dengan JavaScript dan melakukan permintaan jaringan tidak sinkron di dalam interseptor, berpotensi melacak klik Anda. Ketika panggilan jaringan async kembali, JS melakukan pengarahan terprogram menggunakan sesuatu seperti:window.location.href = url;

Pengarahan terprogram ini akan selalu memuat halaman di tab yang sama, bahkan jika Anda menahan Ctrl( Cmddi Mac).

Gunakan MiddleMouse untuk mengganti

Mengklik tombol tengah pada mouse Anda atau memilih 'buka di tab baru' dari menu konteks akan memotong kode JavaScript yang menyadap seluruhnya dan akan membuka tautan seolah-olah tidak ada kode JavaScript sama sekali.

Valentin Vasilyev
sumber
Ini tidak sepenuhnya benar. Sementara beberapa desain kode memungkinkan pemicu alternatif yang memaksa halaman untuk membuka di tab baru, desain kode lainnya mencegah hal ini. Ini lebih umum di situs dengan konten dinamis yang tidak memiliki "halaman" khas dan malah menghasilkan halaman saat tombol diklik. Dalam hal ini, tidak ada "tautan" sebenarnya di halaman, melainkan tombol yang memicu perilaku lebih seperti aplikasi.
music2myear
6

Saya menulis add-on Firefox (membosankan) bernama fixer tautan untuk memperbaikinya. Anda dapat menginstal dari addons.mozilla.org . Itu membutuhkan Firefox 48.0 atau lebih baru.

Mengutip diri saya sendiri:

Perilaku default ctrl + klik, shift + klik dan cmd + klik saat mengklik tautan adalah membuka tautan di tab baru atau jendela baru. Perilaku ini terkadang rusak oleh pengembang yang ceroboh. Add-on ini mengembalikan perilaku default, memastikan kunci modifer selalu dihormati.

Setelah diinstal tidak ada lagi yang perlu Anda lakukan. Anda dapat ctrl + klik pada tautan apa saja dan itu akan terbuka di tab baru. Itu juga akan menyelesaikan variasi masalah yang Anda jelaskan di paragraf kedua Anda.

danielnixon
sumber
1
Hai Daniel, walaupun hebat Anda menulis sesuatu untuk mengatasi hal ini, dapatkah Anda membaca cara merekomendasikan perangkat lunak dalam jawaban , khususnya bagian yang dicetak tebal dan perbarui jawaban Anda? Terima kasih :)
bertieb
3

Mari kita ambil tautan ini sebagai contoh:

<a href="test.php" onclick="someFunction(this); return false;">Test</a>

The hrefatribut, dalam hal ini, adalah menciptakan link semu untuk dibaca (itu juga akan memungkinkan link untuk bekerja bahkan jika JavaScript dinonaktifkan). Alasannya adalah karena onclickatribut selalu berjalan terlebih dahulu. Situs besar seperti Google melakukan ini untuk melacak klik dan untuk mencegah pengguna mengunjungi situs malware. Karena itu, untuk beberapa alasan Ctrl+ Klik tidak berfungsi. Namun, jika Anda menggunakan tombol tengah pada mouse Anda, itu hampir selalu berhasil.

Imtheman
sumber
1
Mencoba menemukan mouse tengah di Mac .
Eduard
Saya menulis addon Firefox untuk memperbaiki masalah ini. github.com/danielnixon/link-fixer
danielnixon