瀏覽器中本地文字檔案讀取的故障排除
為了建立一個基本的文字檔案閱讀器,開發了一個JavaScript 函數來取得在檔案路徑中,將每一行解析為字元數組,但遇到錯誤。本文旨在診斷並解決這些問題。
錯誤診斷
最初,儘管成功檢索了檔案路徑,但程式碼無法顯示文字內容。經過調試,發現 XMLHttpRequest 物件未正確處理本機檔案存取。
更改為 Firefox 產生了成功的結果,突出顯示了潛在的瀏覽器特定問題。特別是 Chrome,拋出了 XMLHttpRequest 例外 101,表示網路錯誤。
瀏覽器相容性解決方案
為了解決瀏覽器相容性問題,Fetch API,2015 年在JS 中引入,提供了一種更簡單、更健壯的方法來從URL 取得資料。這是程式碼的更新版本:
fetch("myText.txt") .then((res) => res.text()) .then((text) => { // process the text content }) .catch((e) => console.error(e));
訪問本地文件
現代瀏覽器嚴格限制直接文件系統訪問,因此應避免使用file:/// 。相反,可以使用輕量級網頁伺服器(例如 python -m http.server 或 npx http-server)透過標準 HTTP URL 載入資料。
處理狀態 0
何時使用 XMLHttpRequest 存取本機文件,不傳回任何狀態。要解決此問題,需要檢查狀態0:
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); }
範例用法
要使用更新的程式碼,請使用file:// 指定檔案路徑/:
readTextFile("file:///C:/your/path/to/file.txt");
以上是為什麼我的 JavaScript 程式碼無法讀取本機文字文件,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!