Apakah ada tag di HTML yang hanya akan menampilkan kontennya jika JavaScript diaktifkan? Saya tahu <noscript>
bekerja sebaliknya, menampilkan konten HTML-nya saat JavaScript dimatikan. Tetapi saya hanya ingin menampilkan formulir di situs jika JavaScript tersedia, memberi tahu mereka mengapa mereka tidak dapat menggunakan formulir tersebut jika tidak memilikinya.
Satu-satunya cara saya tahu bagaimana melakukan ini adalah dengan document.write();
metode di tag skrip, dan tampaknya agak berantakan untuk HTML dalam jumlah besar.
javascript
html
noscript
Re0sless
sumber
sumber
display: none !important
, untuk mencegahnya ditimpa oleh aturan yang lebih spesifik (mis. Oleh selektor id atau css), yang ditujukan untuk penggunaannya saat skrip diaktifkan.<noscript>
saat pertama kali Anda menyegarkan laman setelah menonaktifkan Javascript di preferensi. Anda perlu menekan muat ulang dua kali untuk membuatnya berfungsi.Saya tidak begitu setuju dengan semua jawaban di sini tentang menyematkan HTML sebelumnya dan menyembunyikannya dengan CSS sampai ditampilkan lagi dengan JS. Meskipun JavaScript diaktifkan, node tersebut masih ada di DOM. Benar, sebagian besar browser (bahkan browser aksesibilitas) akan mengabaikannya, tetapi masih ada dan mungkin ada saat-saat ganjil ketika itu kembali menggigit Anda.
Metode pilihan saya adalah menggunakan jQuery untuk menghasilkan konten. Jika akan banyak konten, maka Anda dapat menyimpannya sebagai fragmen HTML (hanya HTML yang ingin Anda tampilkan dan tidak ada tag html, body, head, dll.) Lalu gunakan fungsi ajax jQuery untuk memuatnya ke halaman penuh.
test.html
_test.html
hasil
sumber
Pertama-tama, selalu pisahkan konten, markup, dan perilaku!
Sekarang, jika Anda menggunakan pustaka jQuery (seharusnya, ini membuat JavaScript jauh lebih mudah), kode berikut harus dilakukan:
Ini akan memberi Anda kelas tambahan pada tubuh saat JS diaktifkan. Sekarang, di CSS, Anda dapat menyembunyikan area saat kelas JS tidak tersedia, dan menampilkan area saat JS tersedia.
Atau, Anda dapat menambahkan
no-js
sebagai kelas default ke tag tubuh Anda, dan menggunakan kode ini:Ingatlah bahwa itu masih ditampilkan jika CSS dinonaktifkan.
sumber
Saya memiliki solusi sederhana dan fleksibel, agak mirip dengan Will (tetapi dengan manfaat tambahan sebagai html yang valid):
Berikan elemen tubuh kelas "jsOff". Hapus (atau ganti) ini dengan JavaScript. Memiliki CSS untuk menyembunyikan elemen apa pun dengan kelas "jsOnly" dengan elemen induk dengan kelas "jsOff".
Ini berarti jika JavaScript diaktifkan, kelas "jsOff" akan dihapus dari badan. Ini berarti bahwa elemen dengan kelas "jsOnly" tidak akan memiliki induk dengan kelas "jsOff" dan tidak akan cocok dengan pemilih CSS yang menyembunyikannya, sehingga akan ditampilkan.
Jika JavaScript dinonaktifkan, kelas "jsOff" tidak akan dihapus dari badan. Elemen dengan "jsOnly" akan memiliki induk dengan "jsOff" dan begitu juga dengan cocok dengan pemilih CSS yang menyembunyikannya, sehingga akan disembunyikan.
Berikut kodenya:
Ini html yang valid. Itu sederhana. Itu fleksibel.
Cukup tambahkan kelas "jsOnly" ke elemen apa pun yang ingin Anda tampilkan hanya saat JS diaktifkan.
Harap dicatat bahwa JavaScript yang menghapus kelas "jsOff" harus dijalankan sedini mungkin di dalam tag body. Ini tidak dapat dijalankan lebih awal, karena tag body belum akan ada di sana. Ini tidak boleh dijalankan nanti karena ini berarti bahwa elemen dengan kelas "jsOnly" mungkin tidak langsung terlihat (karena mereka akan cocok dengan pemilih CSS yang menyembunyikannya sampai kelas "jsOff" dihapus dari elemen body).
Ini juga dapat menyediakan mekanisme untuk gaya hanya-js (misalnya
.jsOn .someClass{}
) dan gaya hanya-js (misalnya.jsOff .someOtherClass{}
). Anda dapat menggunakannya untuk memberikan alternatif untuk<noscript>
:sumber
Anda juga dapat menggunakan Javascript untuk memuat konten dari file sumber lain dan mengeluarkannya. Itu mungkin sedikit lebih kotak hitam daripada yang Anda cari.
sumber
Berikut adalah contoh cara div tersembunyi:
(Anda mungkin harus menyesuaikannya untuk IE yang buruk, tetapi Anda mengerti.)
sumber
Solusi saya
.css:
.js:
.html:
sumber
Artikel Alex muncul di benak di sini, namun itu hanya berlaku jika Anda menggunakan ASP.NET - itu dapat ditiru dalam JavaScript tetapi sekali lagi Anda harus menggunakan document.write ();
sumber
Anda bisa menyetel visibilitas paragraf | div ke 'tersembunyi'.
Kemudian di fungsi 'onload', Anda dapat mengatur visibilitas menjadi 'terlihat'.
Sesuatu seperti:
<body onload = "javascript: document.getElementById (rec) .style.visibility = visible"> <p style = "visibility: visible" id = "rec"> Teks ini akan disembunyikan kecuali javascript tersedia. </p>
sumber
Tidak ada tag untuk itu. Anda perlu menggunakan javascript untuk menampilkan teks.
Beberapa orang sudah menyarankan menggunakan JS untuk secara dinamis mengatur CSS terlihat. Anda juga dapat membuat teks
document.getElementById(id).innerHTML = "My Content"
secara dinamis dengan atau membuat node secara dinamis, tetapi peretasan CSS mungkin yang paling mudah dibaca.sumber
Dalam dekade sejak pertanyaan ini diajukan,
HIDDEN
atribut ditambahkan ke HTML. Ini memungkinkan seseorang untuk langsung menyembunyikan elemen tanpa menggunakan CSS. Seperti solusi berbasis CSS, elemen harus disembunyikan oleh skrip:sumber