Mengapa secara khusus menyebutkan TextArea? Karena node TextArea sebenarnya sangat istimewa. Karena simpul ini istimewa, penjelasannya berbeda di IE dan browser lainnya.
Berhenti menjualnya, haha! Bahkan, alasan utamanya adalah saya membantu saudara senior memperbaiki serangga hari ini. Secara khusus, ia gagal menarik data dari server dan memasukkannya ke TextArea. Situasi ini hanya terjadi di IE. Semua browser lainnya normal!
Pertama -tama, mengapa TextArea istimewa? Di semua plugin bentuk, nilai tekstara ditulis antara dua tag terbuka dan tertutup, sehingga nilainya dapat dianggap sebagai simpul teks dari perspektif DOM, yang unik untuk TextArea. Karena fitur ini, ketika Anda memodifikasi nilai innerHTML, Anda masih dapat mengubah teks tekstara. Meskipun IE mendukung melakukan ini, itu tidak mengizinkan satu hal: secara dinamis memasukkan beberapa tag HTML.
Anda mungkin melakukan percobaan:
Masukkan sepotong kode HTML melalui JS di IE, menggunakan atribut InnerHTML alih -alih nilai atau Innertext.
Saya tidak menguji IE9+, tetapi IE6, 7, dan 8 akan melaporkan kesalahan.
Ini mungkin karena alasan keamanan, jadi JS tidak diizinkan untuk memasukkan HTML secara dinamis ke dalam tekstara, tetapi orang -orang yang hati -hati dapat menemukan bahwa jika Anda mengetik kode HTML secara manual, tekstara dapat diterima. Saya pikir ini benar -benar melalui proses seperti ini: Escape karakter. Ya, ini adalah satu -satunya alasan mengapa kode HTML manual berhasil.
Jadi, menurut pendapat saya, karena begitu banyak Textareas browser tidak mendukung tampilan HTML, mengapa Anda masih perlu menggunakan atribut InnerHTML saat mengoperasikan JS? Dengan kata lain, tidak peduli apakah Anda memasukkan kode HTML dengan nilai atau bagian dalam dengan kode HTML, itu tidak akan diuraikan dan ditampilkan (sehingga akan ada editor teks yang kaya, bukan tekstara). Jadi mengapa tidak menggunakan nilai untuk mengatur nilai tekstara?
Jadi saya berpikir bahwa menetapkan nilai tekstara tidak boleh melalui innerHTML (tentu saja bahkan lebih mustahil untuk menjadi Innertext karena Firefox), tetapi harus ditetapkan melalui nilai. Ini adalah sesuatu yang harus diperhatikan oleh pengembang. Karena saya baru -baru ini membaca beberapa kode sepatu anak -anak yang selalu suka menggunakan innerHTML. Sebenarnya, saya pikir ini semua tentang kesempatan.