Lihat kode yang direproduksi terlebih dahulu
1, GB2312.html File ini dikodekan sebagai GB2312
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<title> </title>
<meta charset = "gb2312"/>
<tyle>
P {
Warna: Merah;
}
</tyle>
</head>
<body>
<tombol OnClick = "Loadjs ('UTF8.JS', 'UTF-8')"> Test </button>
<script>
function loadjs (src, charset) {
var skrip = document.createElement ('Script');
script.src = src;
script.charset = charset;
var head = document.geteLementsbyTagname ('head') [0];
head.AppendChild (skrip);
}
</script>
</body>
</html>
2. UTF8.JS Pengkodean file adalah UTF-8
Salinan kode adalah sebagai berikut:
var p = document.createElement ('p');
p.innerHtml = 'yaitu cache menyebabkan kode kacau';
Document.Body.AppendChild (P);
Fungsi LoadJS secara dinamis membuat skrip, mengatur SRC, dan menambahkannya ke kepala setelah charset. Di sini, setiap klik tombol akan memperkenalkan UTF8.JS ke halaman. Kode di UTF.js akan membuat elemen P untuk mengatur sepotong teks dan kemudian menambahkannya ke tubuh.
Saat Anda mengklik tombol untuk pertama kalinya, teks akan ditampilkan secara normal.
Setelah kedua kalinya, pengkodean teks salah.
Seperti yang ditunjukkan
Jika tag skrip bukan tag skrip yang dibuat secara dinamis dan ditulis langsung pada halaman HTML, tidak ada masalah.
Salinan kode adalah sebagai berikut:
<type script = "Text/JavaScript" src = "utf8.js" charset = "UTF-8"> </script>
Jika Anda menggunakan Document.write untuk memuat sumber daya JS, bug tidak akan terjadi.
Salinan kode adalah sebagai berikut:
<script>
fungsi loadbywrite (url, charset) {
var str = '<script type = "text/javascript"' + 'src = "' + url + '" charset = "' + charset + '"> <' + '/script>';
Document.write (str);
}
</script>
<script>
LoadByWrite ('UTF8.JS', 'UTF-8')
</script>
Solusinya adalah mengganti urutan penugasan atribut SRC dan Charset.
Salinan kode adalah sebagai berikut:
script.charset = charset;
script.src = src;
Artinya, tetapkan nilai untuk charset terlebih dahulu.