當前位置:編程學習大全網 - 源碼下載 - 為什麽js不能操作本地文件

為什麽js不能操作本地文件

JS是瀏覽器腳本文件,實現頁面內容的計算、顯示和交互。例如點擊按鈕彈出壹個詳細信息,播放音頻,展開二三級菜單,顯示更多內容及滾動顯示輪播等等。頁面樣式和弱交互壹般CSS可以實現,但復雜的就需要JS來實現。隨著JS的發展,JS在瀏覽器端能實現的功能越來越多,例如經典的JQuery,最近幾年發展起來的React、Angularjs和Vue.js,這些JS框架給前端開發帶來了極大的便利,可以非常高效的實現復雜的頁面數據調用和交互,網頁的功能也越來越強大,甚至出現了非常多的網頁運用,例如百度腦圖、微信圖文編輯器等等在線工具。

但是,所有這些功能僅限於瀏覽器端,JS依賴瀏覽器來解釋執行。瀏覽器作為安裝到系統中的原生軟件,是有權限操作本地文件的,比如瀏覽器自動更新、上傳文件和下載文件。但是,如果把操作本地文件的權限開放給JS,就意味著,開發者只需要寫壹個JS,放到某個地址,用戶打開這個鏈接,瀏覽器執行JS,就開始操作本地文件。於是,顯而易見,只需要壹個JS就可以做以下事情:自動上傳用戶的文件、資料,刪除、修改用戶的文件、軟件,自動下載文件、軟件甚至木馬到用戶本地。

計算機安全問題最大的隱患就是互聯網,我們連網站的安全都無法完全保障,又怎麽能開放那麽大的原生軟件才有的權限給網頁自己的腳本文件JS呢?如果JS能修改和操作本地文件,那麽只要打開壹個連接,就相當於直接裝上壹個不認識的軟件到自己的系統裏!可以搜索查詢到指定目錄下發送妳的聊天記錄、帳號資料等等,這是多麽危險的行為。如果壹個瀏覽器如此不完全,誰還會用這種瀏覽器呢?

所以JS語言在設計之處,就沒有這個功能。直到HTML5的File API,也只能實現讀取(需要用戶主動操作)本地文件(只讀方式),在內存中操作和修改,修改完了以後只能上傳或者download,對本地原有文件無法產生任何影響。

同時瀏覽器也給很多操作限制了權限,例如上傳文件、上傳圖片換頭像等功能,只能用戶通過主動點擊事件和主動選擇文件來實現,JS無法自動上傳。JS本身有打開新窗口的功能,但是也是需要用戶主動點擊或者Enter鍵才能觸發,否則會被瀏覽器攔截,並顯示被攔截信息。高危行為,都有限制。

當然,也不是完全沒有辦法,妳可以通過Node.js實現,讓JS像PHP壹樣實現後端腳本功能。前提是要自己安裝配置壹堆東西,妳的JS就能操作本地文件了。但是用戶肯定不會這麽幹,也不知道怎麽安裝,瀏覽器本身就有安全隔離,如果妳是自己要實現JS操作本地文件可以用這個思路,如果是給別人用戶非常困難。

  • 上一篇:微信小程序錄制的屌絲格式文件如何轉換成MP3?
  • 下一篇:零件與構件的區別?
  • copyright 2024編程學習大全網