Jadual Kandungan
Isu utama dalam popup JavaScript asli
Kebolehcapaian
Alternatif biasa
Meringkaskan
Rumah hujung hadapan web tutorial css Membandingkan pelbagai jenis popup JavaScript asli

Membandingkan pelbagai jenis popup JavaScript asli

Apr 15, 2025 am 10:48 AM

Membandingkan pelbagai jenis popup JavaScript asli

JavaScript menyediakan pelbagai API pop timbul terbina dalam untuk memaparkan UI khas untuk interaksi pengguna. Yang paling biasa adalah:

 Alert ("Hello, World!");
Salin selepas log masuk

UI bervariasi dari penyemak imbas ke penyemak imbas, tetapi biasanya anda akan melihat tetingkap kecil yang muncul ke pusat halaman dengan cara yang sangat menarik, yang mengandungi mesej yang anda lalui. Berikut adalah contoh Firefox dan Chrome:

Isu utama dalam popup JavaScript asli

Popup JavaScript menyekat .

Apabila pop timbul dibuka, seluruh halaman sebenarnya akan berhenti berjalan. Semasa pop timbul, anda tidak boleh berinteraksi dengan apa-apa di halaman-itulah yang betul-betul "tetingkap modal", tetapi ia masih merupakan faktor pengalaman pengguna yang perlu anda perhatikan. Adalah penting bahawa tiada kod utama javascript utama yang lain berjalan apabila pop timbul dibuka, yang mungkin (dan kemungkinan besar) tidak perlu menghalang laman web anda daripada melakukan apa yang perlu dilakukan.

Sembilan dari sepuluh kali, adalah yang terbaik untuk mengubah reka bentuk seni bina anda untuk mengelakkan menggunakan tingkah laku ini yang memaksa semua operasi berhenti. Penyemak imbas melaksanakan makluman JavaScript asli, juga menjadikannya mustahil bagi anda untuk mengawal reka bentuknya. Anda tidak dapat mengawal di mana mereka berada di halaman atau bagaimana mereka melihat di sana. Kecuali anda benar -benar memerlukan ciri -ciri penyekatan total mereka, hampir selalu terbaik untuk menggunakan antara muka pengguna tersuai yang boleh anda reka untuk menyesuaikan pengalaman untuk pengguna.

Mari kita lihat setiap tetingkap pop timbul asli.

window.alert()

 Window.alert ("Hello World");

// tunjukkan mesej contoh butang const = document.QuerySelectorAll ("butang");
Button.AdDeventListener ("klik", () => {
  Alert ("Teks butang:" Button.Innertext);
});
Salin selepas log masuk

Tujuan: Memaparkan nilai mesej mudah atau pemboleh ubah debug.

Bagaimana Ia Berfungsi: Fungsi ini mengambil rentetan dan membentangkannya kepada pengguna dalam tetingkap pop timbul butang dengan label OK. Anda hanya boleh menukar mesej, bukan aspek lain, seperti teks pada butang.

Alternatif: Seperti makluman lain, jika anda perlu memaparkan mesej kepada pengguna, sebaiknya memaparkannya dengan cara yang sesuai dengan tindakan yang anda cuba lakukan.

Jika anda cuba debug nilai pembolehubah, pertimbangkan untuk menggunakan console.log("变量的值:", variable); dan melihatnya di konsol.

window.confirm()

 window.confirm ("Adakah anda pasti?");

// Tanya sampel biarkan jawapan = window.confirm ("Adakah anda suka kucing?");
jika (jawapan) {
  // Pengguna mengklik "ok"
} else {
  // Pengguna mengklik "Batal"
}
Salin selepas log masuk

Tujuan: Digunakan untuk "Adakah anda pasti?" Taipkan mesej untuk melihat sama ada pengguna benar -benar mahu menyelesaikan tindakan yang telah mereka mulakan.

Bagaimana Ia Berfungsi: Anda boleh memberikan mesej tersuai, pop timbul akan menyediakan pilihan OK atau Batal, dan kemudian anda boleh menggunakan nilai itu untuk melihat kandungan yang dikembalikan.

Alternatif: Ini adalah cara yang sangat mengganggu untuk mendorong pengguna. Seperti yang dikatakan Aza Raskin:

... Mungkin anda tidak mahu menggunakan amaran sama sekali. "

Terdapat banyak cara untuk meminta pengguna mengesahkan kandungan tertentu. Mungkin UI yang jelas dengan butang sahkan yang menghubungkan dengan apa yang anda perlukan untuk dilakukan.

window.prompt()

 window.prompt ("Apa nama anda?");

biarkan jawapan = window.prompt ("Apa warna kegemaran anda?");
// Jawapan adalah apa yang pengguna masuk (jika ada)
Salin selepas log masuk

Tujuan: Minta pengguna masuk. Anda menyediakan rentetan (mungkin diformat sebagai masalah) dan pengguna akan melihat tetingkap popup yang mengandungi rentetan, kotak input yang boleh dimasukkan, dan butang OK dan Batal.

Bagaimana Ia Berfungsi: Jika pengguna mengklik "OK", anda akan mendapat apa yang mereka masukkan dalam kotak input. Jika mereka tidak menaip apa -apa dan klik OK, anda akan mendapat rentetan kosong. Jika mereka memilih Batal, nilai pulangan akan menjadi batal.

Alternatif: Seperti semua makluman JavaScript asli yang lain, ini juga tidak membolehkan anda gaya atau meletakkan kotak amaran. Terbaik untuk digunakan<input> Elemen untuk mendapatkan maklumat pengguna. Dengan cara ini, anda boleh memberikan lebih banyak konteks dan reka bentuk yang bertujuan.

window.onbeforeunload()

 window.AddEventListener ("SebelumUnload", () => {
  // Standard memerlukan pembatalan operasi lalai.
  event.PreventDefault ();
  // Chrome Memerlukan tetapan ReturnValue (melalui MDN)
  event.returnvalue = '';
});
Salin selepas log masuk

Tujuan: Mengeluarkan amaran sebelum pengguna meninggalkan halaman. Ini mungkin sangat menjengkelkan, tetapi ia tidak sering digunakan menjengkelkan. Ia digunakan untuk laman web di mana anda mungkin bekerja dan perlu menyimpannya secara eksplisit. Jika pengguna tidak menyelamatkan kerja mereka dan akan pergi, anda boleh menggunakan kaedah ini untuk memberi amaran kepada mereka. Jika mereka telah menyelamatkan kerja mereka, anda harus memadamkannya.

Bagaimana Ia Berfungsi: Jika anda telah melampirkan acara beforeunload ke tetingkap (dan melakukan tindakan lain yang ditunjukkan dalam coretan di atas), apabila pengguna cuba meninggalkan halaman, mereka akan melihat pop timbul bertanya jika mereka mahu "meninggalkan" atau "membatalkan". Meninggalkan laman web ini mungkin kerana pengguna mengklik pautan, tetapi ia juga mungkin hasil mengklik butang penyemak imbas atau belakang. Anda tidak boleh menyesuaikan mesej.

MDN memberi amaran bahawa sesetengah pelayar memerlukan interaksi dengan halaman untuk menjadikannya berfungsi:

Untuk memerangi popup yang tidak diingini, sesetengah pelayar tidak memaparkan petunjuk yang dibuat dalam pengendali acara beforeunload melainkan jika halaman telah berinteraksi dengannya. Juga, beberapa pelayar tidak menunjukkan sama sekali.

Alternatif: Tidak ada yang dapat dipikirkan. Jika ini adalah masalah dengan pengguna kehilangan kerja, anda perlu menggunakannya. Jika mereka memilih untuk tinggal, anda harus menjelaskan apa yang harus mereka lakukan untuk memastikan bahawa meninggalkan adalah selamat.

Kebolehcapaian

Makluman JavaScript asli digunakan untuk tidak popular di dunia aksesibiliti, tetapi pembaca skrin nampaknya semakin pintar dalam cara mereka dikendalikan. Menurut garis panduan kebolehaksesan Penn State:

Penggunaan kotak amaran sekali tidak digalakkan, tetapi mereka sebenarnya boleh diakses dalam pembaca skrin moden.

Apabila membuat tetingkap modal anda sendiri, pastikan anda mempertimbangkan kebolehcapaian, tetapi terdapat beberapa sumber yang hebat (seperti jawatan ini oleh IRE Aderinokun) yang boleh menunjukkan anda ke arah.

Alternatif biasa

Terdapat banyak alternatif untuk popup JavaScript asli, seperti menulis popup anda sendiri, menggunakan perpustakaan tetingkap modal, dan menggunakan perpustakaan amaran. Ingatlah bahawa tidak ada perkara yang kami diperkenalkan dapat menghalang pelaksanaan JavaScript dan interaksi pengguna, tetapi ada yang dapat melakukan ini dengan mengubati latar belakang dan memaksa pengguna untuk berinteraksi dengan tetingkap modal sebelum meneruskan.

Anda mungkin mahu melihat html asli<dialog></dialog> elemen. Chris baru -baru ini menjalankan kajian praktikal mengenainya. Ia menarik, tetapi terdapat beberapa isu kebolehaksesan utama. Saya tidak pasti jika ia lebih baik atau lebih teruk untuk membina popup anda sendiri, kerana pengendalian tingkap modal adalah elemen interaktif yang sangat penting. Sesetengah perpustakaan UI seperti bootstrap menyediakan tingkap modal, tetapi kebolehaksesan masih sebahagian besarnya di tangan anda. Anda mungkin mahu menyemak projek seperti A11Y-Dialog.

Meringkaskan

Menggunakan API terbina dalam platform web seolah-olah menjadi perkara yang betul untuk dilakukan-bukannya menghantar banyak kod JavaScript untuk menyalin fungsi, anda menggunakan fungsi yang kami sudah terbina dalam. Walau bagaimanapun, terdapat batasan yang serius, isu pengalaman pengguna dan isu -isu prestasi yang tidak kondusif untuk menggunakan popup JavaScript asli. Adalah penting untuk mengetahui apa yang mereka dan bagaimana menggunakannya, tetapi anda mungkin tidak memerlukannya banyak di laman web pengeluaran.

Atas ialah kandungan terperinci Membandingkan pelbagai jenis popup JavaScript asli. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bekerja dengan Caching Graphql Bekerja dengan Caching Graphql Mar 19, 2025 am 09:36 AM

Sekiranya anda baru -baru ini mula bekerja dengan GraphQL, atau mengkaji semula kebaikan dan keburukannya, anda tidak akan ragu -ragu mendengar perkara seperti "Graphql tidak menyokong caching" atau

Membina aplikasi Ethereum menggunakan redwood.js dan fauna Membina aplikasi Ethereum menggunakan redwood.js dan fauna Mar 28, 2025 am 09:18 AM

Dengan pendakian harga bitcoin baru -baru ini lebih dari 20k $ USD, dan baru -baru ini melanggar 30k, saya fikir ia patut mengambil menyelam yang mendalam kembali ke dalam mewujudkan Ethereum

Membuat Bragdoc anda sendiri dengan sebelas Membuat Bragdoc anda sendiri dengan sebelas Mar 18, 2025 am 11:23 AM

Tidak kira tahap tahap anda sebagai pemaju, tugas yang kami selesaikan -sama ada besar atau kecil -membuat kesan besar dalam pertumbuhan peribadi dan profesional kami.

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Ia &#039; s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Apr 02, 2025 pm 06:17 PM

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That &#039; s seperti ini.

Sedikit di CI/CD Sedikit di CI/CD Apr 02, 2025 pm 06:21 PM

Saya &#039;

Kad yang disusun dengan kedudukan melekit dan sasaran sass Kad yang disusun dengan kedudukan melekit dan sasaran sass Apr 03, 2025 am 10:30 AM

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Membandingkan penyemak imbas untuk reka bentuk responsif Membandingkan penyemak imbas untuk reka bentuk responsif Apr 02, 2025 pm 06:25 PM

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis

See all articles