Memelihara Pengekodan HTML Semasa Membaca Atribut Medan Tersembunyi
Apabila mengekstrak nilai daripada medan input tersembunyi yang dikodkan, JavaScript sering kehilangan pengekodan semasa proses . Ini bermasalah apabila niatnya adalah untuk mengekalkan aksara ampersand (&) literal.
Penyelesaian:
Untuk menangani isu ini, JavaScript menyediakan kaedah yang boleh mengekod HTML rentetan. Salah satu kaedah tersebut ialah:
function htmlEncode(value) { // Create an in-memory textarea element and set its inner text. // Text within a textarea is automatically encoded. return $('<textarea/>').text(value).html(); }
Penggunaan:
Fungsi ini boleh dimasukkan ke dalam kod anda untuk memastikan pengekodan HTML dikekalkan apabila membaca dari medan tersembunyi:
var encodedValue = $('#hiddenId').attr('value'); var decodedValue = htmlDecode(encodedValue);
Sebagai alternatif, perpustakaan jQuery menyediakan kaedah yang dipanggil htmlDecode() yang boleh membalikkan pengekodan:
// Decoding the encoded value var decodedValue = decodedValue = $('<div/>').html(encodedValue).text();
Contoh:
Pertimbangkan medan tersembunyi:
<input>
Menggunakan fungsi htmlEncode():
var encodedValue = $('#hiddenId').attr('value'); console.log(encodedValue); // Outputs: chalk & cheese
Menggunakan htmlDecode() kaedah:
var decodedValue = $('<div/>').html(encodedValue).text(); console.log(decodedValue); // Outputs: chalk &cheese
Dalam kedua-dua kes, pengekodan HTML asal dikekalkan semasa proses pengekstrakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Pengekodan HTML Apabila Mendapatkan Nilai daripada Medan Input Tersembunyi dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!