js 弹出菜单/窗口效果_javascript技巧
是不是应该为弹出菜单提供更好的可访问支持?这篇文章将涉及到3种常见的弹窗:
window.open 新建的浏览器窗口
创建的窗口
页面 DOM 创建的伪弹出窗口:如弹出 tips 等
一、当页面无 JS 的时候
通常来说,无 JS 的情况那就按 HTML 的行为来做事。让链接可以链接,就已经解决。比较简单,我们简单带过:
1. window.open 新建的浏览器窗口:尽量让 JS 触发器绑定在 上,并把 a 链接到一个新的页面,即可。
// 链接与 window.open 的目标相同
[open window]
// 记得阻止链接有默认行为,不然有 JS 的时候会打开两次
window.open('./iframe.html', 'name', 'height=300,width=500');
return false;
2. 创建的窗口:如果是用 JS 动态创建的,那么记得触发器也应该像 window.open 的方法一样,把解法链接写在一个 上,让用户通过链接来访问。而如果是隐藏的,那么尽量来使用 来隐藏,再用 JS 让其正常显示出来;或者高度为 0 的空 iframe 。这样即可保证在有 JS 的时候可用,而在无 JS 的时候可以正常显示。详细应用可以参照:支付宝新首页的几点前端实践。
// 动态创建,请尽量使用这种方法,因为 IE8 不能用 JS focus 到动态创建的 focusable 元素
// 而空 src 则请使用 javascript:'' 这种方式,因为这是解决性能的最好方式,详见:空路径对页面性能影响的解决方案
[open iframe]
// js
document.getElementById('theframe').src = '/target.html'
3. 页面 DOM 创建的伪弹出窗口:使用 来隐藏。链接用锚点。
二、大多数情况下
大数多情况下,用户的浏览器都是有开启 JS 的。而我们要做的是:focus 到弹出的窗口,并且第一个 tab 就可以访问里面的内容。听过来挺简单的,hub? 先看看 DEMO:
预览:可访问弹出菜单/窗口
1. window.open 新建的浏览器窗口:focus 到新建的窗口即可。
// 引用自:QuickMode - popups
function popitup(url) {
newwindow=window.open(url,'name','height=200,width=150');
if (window.focus) {
// focus 到新建窗口
newwindow.focus();
}
// 阻止触发器的默认行为
return false;
}
2. 创建的窗口:调试了好久,IE8/9 需要等 iframe onload 成功后 setTimeout 来 hack;firefox 不能使用 ifrcontentWindow.focus(),只能用 iframe.focus()。综合起来需要这样的代码:
// for all except firefox
setTimeout(function(){
f.contentWindow.focus();
}, 50);
// hack for firefox
navigator.userAgent.toLowerCase().indexOf('firefox') !== -1 && f.focus();
3. 页面 DOM 创建的伪弹出窗口:对于 dom,除了 等这些 focusable 元素(W3C SPEC),都是不可以 focus 的。那么当需要 focus 到一个 div 时,我们有什么方法可以做到呢?通常来说,我们可以设置 Tabindex 来让像 这样的非 focusable 元素可以触发 focus 事件。但我们想要的时真正 focus 到一个地方,以便于使用 tab 来访问这个区域的内容,所以这种方法对我们等于无用。
目前还没有比较好的方法(对于我能想到的和找到的),所以目前来说,我们只能利用一个 focusable 元素来创建 focus 目标。我们可以这样做:
Get focus
但问题是,对于这个链接对于我们来说是毫无作用的,我们需要隐藏他,又能 focus 到。但 display:none 的时候是不能 focus 的。对于隐藏 来说,这里也不想说太多。推荐看看这篇文章:使用clip隐藏内容。那么我们可以这样来 hack 我们的这个链接:
// html: 注意用 hidefocus 来删除虚线框
Get focus
// CSS: 使用 clip
.getfocus{
position:relative;
clip:rect(1px 1px 1px 1px);
clip:rect(1px, 1px, 1px, 1px);
}
// javascript: 记得把 放在这个 DOM 结构的最前面方便自上至下 tab 下去
a.focus()
三、总结:
至此,重要的技术实现点也已经说明白。代码请见这个粗陋的 DEMO,虽然只是没有特别优化的一段代码,但相信可以解决很多问题。对于可访问性,我们要走的路还有很多。一点点来吧,从今天开始。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah kekunci pintasan untuk skrin penuh dalam Windows 7? Apabila kita menggunakan sistem win7, kadang-kadang apabila kita membuka perisian, tetingkap yang berjalan tidak skrin penuh Pada masa ini, kita perlu memaksimumkan tetingkap melalui tetikus. Jadi apakah kekunci pintasan yang ada untuk bertukar dengan cepat antara paparan tetingkap yang dimaksimumkan? Seterusnya, saya akan berkongsi dengan anda tutorial kekunci pintasan untuk tetingkap win7 skrin penuh. 1. Alt+Enter program umum, termasuk kebanyakan permainan, yang tidak mempunyai kekunci pintasan skrin penuh mereka sendiri. 2. F11 Hampir semua pelayar boleh menggunakan kekunci pintasan ini untuk pergi ke skrin penuh. 3. Alt+V+U Kebanyakan alatan dokumen, termasuk dokumen perkataan, boleh menggunakan kekunci pintasan ini untuk pergi ke skrin penuh. 4. Ctrl+F/Space Banyak perisian pemain membenarkan penonton untuk

Bagaimana untuk menetapkan Google Chrome untuk membuka tetingkap baharu setiap kali? Pengguna yang jahat suka menggunakan Google Chrome untuk bekerja atau belajar Penyemak imbas ini selamat, pantas dan mudah untuk menetapkannya. Seterusnya, editor akan membawakan anda tutorial tentang menyediakan tetingkap baharu setiap kali anda membuka Google Chrome Rakan-rakan yang berminat boleh datang dan mempelajarinya. Tutorial menyediakan tetingkap baharu setiap kali Google Chrome dibuka 1. Selepas mengklik dua kali Google Chrome pada desktop komputer untuk membukanya, klik pada ikon [tiga titik] di penjuru kanan sebelah atas. 2. Cari pilihan [Tetapan] dan masukkan halaman (seperti yang ditunjukkan dalam gambar). 3. Pergi ke Google Chrome

Apakah yang perlu saya lakukan jika bar tugas Win7 dipaparkan dalam tetingkap di sebelah kanan desktop? Dalam keadaan biasa, bar tugas berada di bahagian bawah skrin secara lalai, tetapi baru-baru ini beberapa pengguna Win7 mendapati bar tugas telah berpindah ke tetingkap kanan skrin apabila mereka menghidupkan komputer Jadi adakah terdapat cara untuk menukarnya kembali ? Ramai rakan tidak tahu bagaimana untuk beroperasi secara terperinci Editor di bawah telah menyusun langkah-langkah untuk menyelesaikan masalah bar tugas Win7 yang dipaparkan dalam tetingkap di sebelah kanan desktop Jika anda berminat, ikuti editor untuk mengambil a lihat di bawah! Bar tugas Win7 dipaparkan dalam tetingkap di sebelah kanan desktop Langkah penyelesaian 1. Mula-mula, kita klik kanan bar tugas dalam tetingkap di sebelah kanan desktop dan pilih Properties, seperti yang ditunjukkan di bawah: 2. Dalam dibuka. bar tugas dan tetingkap sifat, klik pada bar tugas pada skrin Pilih lokasi bawah, semak Kunci bar tugas, dan klik

Ramai netizen percaya bahawa mereka akan menemui beberapa tetingkap timbul iklan semasa bermain pada komputer Windows 10 Kadangkala apabila bermain permainan, tetingkap timbul iklan permainan mungkin muncul, mengakibatkan pengalaman yang buruk. Jadi apakah yang perlu saya lakukan jika iklan permainan berkelip di sudut kanan bawah komputer win10 saya? Bagaimana untuk menutup pop timbul pengiklanan permainan komputer? Editor berikut akan mengajar anda cara menutup pop timbul iklan permainan pada komputer anda. Bagaimana untuk menutup pop timbul pengiklanan permainan komputer. Langkah 1: Cari nama proses tetingkap timbul yang berkelip 1. Apabila tetingkap timbul yang berkelip muncul, jangan tutupnya lagi Klik kanan untuk membuka tetapan bar tugas di bahagian bawah komputer. 2. Cari kawasan pemberitahuan di bawah bar tugas dan klik Tunjukkan ikon yang dipilih pada bar tugas. 3. Ikon yang disenaraikan di sini pernah muncul pada bar tugas anda, jadi walaupun anda menutup tetingkap pop timbul, ia masih dirakam di sini. awak

Ramai pelanggan Windows 10 merasakan bahawa warna tetingkap lalai komputer mereka tidak cantik Jika mereka mahu menetapkannya kepada warna lain, bagaimana mereka harus menetapkannya? Anda perlu terlebih dahulu memasuki panel tetapan, cari entri pemperibadian, dan kemudian klik pada warna Panel warna akan muncul, di mana anda boleh memilih warna yang anda mahu, simpan tetapan kemudian, dan warna akan ditukar. Anda boleh membuka tetingkap dan melihat bahawa warna telah berubah. Cara menetapkan warna tetingkap dalam Windows 10: 1. Menukar warna sempadan tetingkap adalah sangat mudah Pertama, masukkan konfigurasi sistem. 2. Kemudian klik "Peribadikan", seperti yang ditunjukkan dalam gambar. 3. Dalam tetingkap pop timbul, pilih butang "Warna" pada lajur kiri. 4. Kemudian pilih warna yang dikehendaki daripada senarai warna di sebelah kanan, dan kemudian klik OK

Jika anda menghidupkan mod kapal terbang (juga dikenali sebagai mod kapal terbang), sambungan Bluetooth, Wi-Fi dan Internet akan dimatikan secara automatik. Oleh itu, anda tidak boleh menggunakan mana-mana aplikasi yang bergantung pada Internet. Walau bagaimanapun, walaupun Mod Pesawat dihidupkan, anda masih boleh menghidupkan pilihan Bluetooth dan Wi-Fi secara manual. Kadangkala, peranti tersekat dalam mod kapal terbang dan anda tidak dapat melakukan operasi yang diperlukan pada peranti tertentu itu. Apabila ini berlaku, orang ramai tidak tahu apa-apa. Tetapi dalam artikel ini, kami mempunyai penyelesaian berbeza yang boleh membantu anda menyelesaikan masalah ini. Cubalah dan lihat jika masalah itu telah diselesaikan. Mari mulakan! Kaedah 1 – Matikan Mod Pesawat menggunakan Tetapan Windows Langkah 1 – Gunakan kekunci Windows + I serentak untuk membuka Langkah Tetapan Tetingkap

Sejak desktop Unity diperkenalkan kepada Ubuntu, konsep reka bentuk yang ringkas dan praktikal serta antara muka pengguna yang cantik dan cekap telah menjadi semakin popular. Mari kongsikan beberapa petua praktikal tentang menggunakan kekunci pintasan dalam desktop Unity apabila menukar tetingkap aplikasi. 1. Gunakan kombinasi kekunci Alt+Tab untuk bertukar antara program yang berbeza pada desktop semasa 1. Tekan kombinasi kekunci Alt+Tab, dan bar penukaran program akan dipaparkan pada skrin, dan kemudian klik kekunci Tab berulang kali, dan program dalam bar pensuisan akan Halo putih dipaparkan mengikut urutan dari kiri ke kanan Apabila halo mencapai program sasaran, lepaskan kekunci dan program sasaran serta-merta menjadi tetingkap semasa. 2. Petua: 1) Mula-mula tekan dan tahan kekunci Alt di sebelah kanan, dan kemudian tekan kekunci Tab Jika terdapat banyak program dibuka pada masa ini, program sasaran akan

Excel ialah perisian pejabat dengan banyak fungsi untuk membantu pengguna mengedit kandungan jadual dengan lebih baik Baru-baru ini, ramai pengguna ingin tahu cara membuka dua tetingkap bebas dalam Excel semasa digunakan. Tidak akan ada pertindihan Sebagai jawapan kepada soalan yang dibangkitkan oleh netizen, saya akan menjawabnya hari ini, saya harap kandungan tutorial perisian hari ini dapat membantu anda. Bagaimana untuk membuka dua tetingkap bebas dalam Excel? 1. Seperti perkataan, anda boleh membuka dua tetingkap bebas, seperti yang ditunjukkan dalam rajah di bawah. Operasi khusus adalah seperti berikut. 2. Mula-mula buka larian menu mula, masukkan regedit, dan buka pendaftaran, seperti yang ditunjukkan dalam rajah di bawah. 3. Selepas membuka pendaftaran, cari HKEY_CLASSES_ROOT\Excel.S
