Perhatikan bahwa Element::innerText
properti tidak akan mengandung teks yang telah disembunyikan oleh gaya CSS " display:none
" di Google Chrome (juga akan menjatuhkan konten yang telah disembunyikan oleh teknik CSS lainnya (termasuk ukuran font: 0, warna: transparan, dan beberapa efek serupa lainnya yang menyebabkan teks tidak ditampilkan dengan cara apa pun yang terlihat).
Properti CSS lainnya juga dipertimbangkan:
- Pertama-tama gaya "tampilan:" elemen dalam diuraikan untuk menentukan apakah ia membatasi konten blok (seperti "tampilan: blok" yang merupakan default elemen blok HTML di stylesheet bawaan browser, dan yang perilakunya tidak ditimpa oleh gaya CSS Anda sendiri); jika demikian baris baru akan dimasukkan dalam nilai properti innerText. Ini tidak akan terjadi dengan properti textContent.
- Properti CSS yang menghasilkan konten inline juga akan dipertimbangkan: misalnya elemen inline
<br \>
yang menghasilkan baris inline juga akan menghasilkan baris baru dalam nilai innerText.
- Gaya "display: inline" tidak menyebabkan baris baru di textContent atau innerText.
- Gaya "display: table" menghasilkan baris baru di sekitar tabel dan di antara baris tabel, tetapi "display: table-cell" akan menghasilkan karakter tabulasi.
- Properti "position: absolute" (digunakan dengan tampilan: blok atau tampilan: inline, itu tidak masalah) juga akan menyebabkan jeda baris dimasukkan.
- Beberapa browser juga akan menyertakan pemisahan spasi tunggal antara bentang
Tetapi Element::textContent
akan tetap mengandung SEMUA konten elemen teks dalam secara independen dari CSS yang diterapkan bahkan jika mereka tidak terlihat. Dan tidak ada baris baru atau spasi putih akan dihasilkan dalam textContent, yang mengabaikan semua gaya dan struktur dan inline / blok atau jenis elemen dalam yang diposisikan.
Operasi salin / rekat menggunakan pilihan mouse akan membuang teks tersembunyi dalam format teks biasa yang dimasukkan ke clipboard, sehingga tidak akan berisi semua yang ada di textContent
, tetapi hanya apa yang ada di dalamnya.innerText
(setelah spasi putih / generasi baris baru seperti di atas) .
Kedua properti kemudian didukung di Google Chrome, tetapi kontennya mungkin berbeda. Browser lama masih termasuk dalam innetText, semua seperti isi textContent sekarang (tetapi perilaku mereka dalam kaitannya dengan generasi spasi putih / baris baru tidak sesuai).
jQuery akan menyelesaikan ketidakkonsistenan ini di antara browser menggunakan metode ".text ()" yang ditambahkan ke elemen yang diuraikan yang dikembalikan melalui kueri $ (). Secara internal, ini memecahkan kesulitan dengan melihat ke dalam DOM HTML, hanya bekerja dengan level "simpul". Jadi itu akan mengembalikan sesuatu yang lebih mirip dengan konten teks standar.
Peringatannya adalah bahwa metode jQuery ini tidak akan menyisipkan spasi tambahan atau jeda baris yang mungkin terlihat di layar yang disebabkan oleh subelemen (seperti <br />
) konten.
Jika Anda merancang beberapa skrip untuk aksesibilitas dan lembar gaya Anda diuraikan untuk rendering non-aural, seperti plugin yang digunakan untuk berkomunikasi dengan pembaca Braille, alat ini harus menggunakan konten TextContent jika harus menyertakan tanda baca spesifik yang ditambahkan dalam bentang yang ditata dalam bentang yang ditata dengan gaya "display: none" dan yang biasanya disertakan dalam halaman (misalnya untuk superskrip / subskrip), jika tidak, innerText akan sangat membingungkan pembaca Braille.
Teks yang disembunyikan oleh trik CSS sekarang biasanya diabaikan oleh mesin pencari utama (yang juga akan mengurai CSS halaman HTML Anda, dan juga akan mengabaikan teks yang tidak memiliki warna kontras di latar belakang) menggunakan parser HTML / CSS dan properti DOM. "innerText" persis seperti di browser visual modern (setidaknya konten tidak terlihat ini tidak akan diindeks sehingga teks tersembunyi tidak dapat digunakan sebagai trik untuk memaksa dimasukkannya beberapa kata kunci di halaman untuk memeriksa kontennya); tetapi teks tersembunyi ini akan tetap ditampilkan di halaman hasil (jika halaman tersebut masih memenuhi syarat dari indeks untuk dimasukkan dalam hasil), menggunakan properti "textContent" alih-alih HTML lengkap untuk menghapus gaya dan skrip tambahan.
JIKA Anda menetapkan beberapa teks biasa di salah satu dari dua properti ini, ini akan menimpa markup dalam dan gaya yang diterapkan padanya (hanya elemen yang ditugaskan akan menyimpan jenis, atribut, dan gaya), sehingga kedua properti kemudian akan berisi konten yang sama . Namun, beberapa browser sekarang tidak lagi menghormati penulisan ke innerText, dan hanya akan membiarkan Anda menimpa properti textContent (Anda tidak dapat menyisipkan markup HTML saat menulis ke properti ini, karena karakter khusus HTML akan dikodekan dengan benar menggunakan referensi karakter numerik untuk muncul secara harfiah , jika Anda membaca innerHTML
properti setelah penugasan innerText
atau textContent
.