Menyelesaikan Masalah Pembacaan Fail Teks Setempat dalam Penyemak Imbas
Dalam percubaan untuk mencipta pembaca fail teks asas, fungsi JavaScript telah dibangunkan untuk mengambil dalam laluan fail, huraikan setiap baris ke dalam tatasusunan aksara, tetapi menemui ralat. Artikel ini bertujuan untuk mendiagnosis dan menyelesaikan isu ini.
Diagnosis Ralat
Pada mulanya, kod gagal memaparkan kandungan teks, walaupun berjaya mendapatkan semula laluan fail. Selepas penyahpepijatan, didapati bahawa objek XMLHttpRequest tidak mengendalikan akses fail setempat dengan betul.
Penukaran kepada Firefox menghasilkan hasil yang berjaya, menyerlahkan kemungkinan isu khusus penyemak imbas. Chrome, khususnya, telah membuang XMLHttpRequest pengecualian 101, menunjukkan ralat rangkaian.
Penyelesaian untuk Keserasian Penyemak Imbas
Untuk menangani isu keserasian penyemak imbas, API Ambil, diperkenalkan dalam JS pada 2015, menawarkan pendekatan yang lebih mudah dan lebih mantap untuk mengambil data daripada URL. Berikut ialah versi kod yang dikemas kini:
fetch("myText.txt") .then((res) => res.text()) .then((text) => { // process the text content }) .catch((e) => console.error(e));
Mengakses Fail Setempat
Pelayar moden sangat menyekat akses sistem fail langsung, jadi penggunaan file:/// harus dielakkan . Sebaliknya, pelayan web ringan seperti python -m http.server atau npx http-server boleh digunakan untuk memuatkan data melalui URL HTTP standard.
Status Pengendalian 0
Bila mengakses fail tempatan menggunakan XMLHttpRequest, tiada status dikembalikan. Untuk menyelesaikan masalah ini, semakan status 0 diperlukan:
function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function () { if (rawFile.readyState === 4) { if (rawFile.status === 200 || rawFile.status == 0) { // process the text content } } }; rawFile.send(null); }
Contoh Penggunaan
Untuk menggunakan kod yang dikemas kini, nyatakan laluan fail menggunakan fail:// /:
readTextFile("file:///C:/your/path/to/file.txt");
Atas ialah kandungan terperinci Mengapa Kod JavaScript Saya Tidak Boleh Membaca Fail Teks Setempat, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!