導航:首頁 > 文件教程 > 前端使用js讀取文件

前端使用js讀取文件

發布時間:2024-08-29 00:50:41

① 前端js怎麼讀取頁面上傳的文件

1、使用DOM方法獲取文件上傳輸入框的元素。
2、為前端js文件輸入元素添加change事件監聽。
3、通過event獲取文件名,進行前端js後續處理。

② 前端小技巧:載入並解析Markdown文檔

移步github

作為程序猿,應該多多少少都用過Markdown,或者至少讀過別人用Markdown語法寫的一些文檔,比如在GitHub有一個你要用的開源程序,而你又是第一回用它,那麼你一般會在這個倉庫的Readme里讀一讀開發者提供的工具說明和使用的相關信息,這部分文檔一般就是用Markdown的語法寫的

簡單來說,Markdown就是簡化閹割過的HTML,優點是語法簡單高效,缺點就是HTML中一些稍微高級復雜一點的效果,比如文本居中,Markdown就無法實現,所以Markdown一般被用來寫對頁面排版要求不高,以文字為主的筆記和文檔

如果你一開始用Markdown寫了文檔,想要把它放到你的網頁上去,並以解析後的形式呈現

那麼你有兩種實現途徑:

第一種方法:

第二種方法:

下面我們對 第二種方法 的實現過程進行詳細的說明

上一部分已經提到,我們需要先讓原始網頁請求伺服器中的Markdown文檔

這一步需要使用AJAX(中文音譯為阿甲克斯),這里先對AJAX作一個簡單的科普:

對上面的腳本繼續簡單的說明:

那麼這里有幾個問題需要解答:

1. 怎麼指定我想要的Markdown文檔呢?

表單的顯示效果如下:

點擊表單中的「顯示」按鈕後會執行 showMarkdown( ) 函數,即 用AJAX獲取Markdown文檔 部分的那個函數,並且將表單選擇的信息通過 form 變數傳遞給了 showMarkdown( ) 函數中的 f 變數

這樣就通過表單設定了用戶指定的Markdown文檔

這里採用的是GitHub上的名為 marked 的JS框架,鏈接: https://github.com/markedjs/marked

要想使用這個框架,需要在html腳本的頭信息中引用這個框架:

引用這個框架後就可以使用裡面定義的 marked( ) 函數進行Markdown文本解析了

參考資料:

(1) 本人github筆記:AJAX學習筆記

(2) marked說明文檔

③ 如何使用Node.js處理前端代碼文件的編碼問題

使用 NodeJS 編寫前端工具時,操作得最多的是文本文件,因此也就涉及到了文件編碼的處理問題。我們常用的文本編碼有 UTF8 和 GBK 兩種,並且 UTF8 文件還可能帶有 BOM。在讀取不同編碼的文本文件時,需要將文件內容轉換為 JS 使用的 UTF8 編碼字元串後才能正常處理。

1、BOM 的移除
BOM 用於標記一個文本文件使用 Unicode 編碼,其本身是一個 Unicode 字元("uFEFF"),位於文本文件頭部。在不同的 Unicode 編碼下,BOM 字元對應的二進制位元組如下:

3、單位元組編碼
有時候,我們無法預知需要讀取的文件採用哪種編碼,因此也就無法指定正確的編碼。比如我們要處理的某些 CSS 文件中,有的用 GBK 編碼,有的用 UTF8 編碼。雖然可以一定程度可以根據文件的位元組內容猜測出文本編碼,但這里要介紹的是有些局限,但是要簡單得多的一種技術。

首先我們知道,如果一個文本文件只包含英文字元,比如 Hello World,那無論用 GBK 編碼或是 UTF8 編碼讀取這個文件都是沒問題的。這是因為在這些編碼下,ASCII0~128 范圍內字元都使用相同的單位元組編碼。

反過來講,即使一個文本文件中有中文等字元,如果我們需要處理的字元僅在 ASCII0~128 范圍內,比如除了注釋和字元串以外的JS代碼,我們就可以統一使用單位元組編碼來讀取文件,不用關心文件的實際編碼是 GBK 還是 UTF8。

④ JS 下載/導出 csv、excel、txt 、img等文件的方法總結

1. 調用後端介面導出文件

示例下載介面url https://gold-cdn.xitu.io/extension/0.3.9/package.crx

1.1 window.open(url)

會打開一個新窗口,開始下載後會自動關閉新窗口。Safair 下載後沒有關閉新窗口。

Chrome、IE、Safair支持,貌似火狐不支持

1.2 window.location=url

在當前窗口下載

Chrome、Safair支持

1.3 iframe

在HTML中,iframe 的屬性用src,但在JS中,只有部份瀏覽器支持修改src(讀是沒問題),真正通用的是要修改對應框架的href值。

1.4 <a href="url" download="filename">點擊鏈接下載</a>

HTML5中給a標簽增加了一個download屬性,只要有這個屬性,點擊這個鏈接時瀏覽器就不在打開鏈接指向的文件,而是改為下載,目前只有chrome、firefox、opera、Edge支持。常用此方法點擊下載圖片。

IE既不支持a標簽的download屬性也不允許js調用a 標簽的click方法。

2. 前端直接導出文件到本地

2.1 將數據轉成DataURI用<a>標簽下載

<a href="DataURI" download="filename">點擊鏈接下載</a>

Data URI Scheme

Data URI Scheme是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請求的一類URI。 Data URI Scheme一般用於將經過base64編碼的數據嵌入網頁中,從而減少請求資源的鏈接數。IE8 之前的版本都不支持 data URI scheme。

DataURI的格式:

生成DataURI的方式

1. encodeURIComponent

使用這種方式,當數據過多時,URI長度容易超出瀏覽器限制。 encodeURIComponent常用來轉碼介面參數,為了避免伺服器收到不可預知的請求,對任何用戶輸入的作為URI部分的內容都需要用encodeURIComponent進行轉義。

2. URL.createObjectURL

URL.createObjectURL的參數是File對象或者Blob對象

IE10以下不支持URL.createObjectURL

2.2 windows.navigator.msSaveBlob IE10~Edge 專用

msSaveBlob 是IE10~Edge 私有方法。

2.3 execCommand

有的資料有提到IE9可以使用execCommand方法來保存數據到本地文件,但是我自己沒有驗證過,不知道是否可行。而且MDN文檔中execCommand沒有查到SaveAs命令。這塊只是做個小記錄。

js數據直接導出/下載數據到本地到方法總結

本文轉載自:https://juejin.im/post/5cd00253518825418f6f2a8c?utm_source=gold_browser_extension

閱讀全文

與前端使用js讀取文件相關的資料

熱點內容
ipa里資源文件 瀏覽:110
蘋果的文件管理在那裡 瀏覽:633
qq瀏覽器文件如何發到qq 瀏覽:736
百度地圖載入多個點代碼 瀏覽:146
數據橫向復制如何縱向粘貼 瀏覽:433
2020cab畫圖數據怎麼調 瀏覽:534
teamview12linux 瀏覽:175
java編輯word文件 瀏覽:149
類似scihub的網站有哪些 瀏覽:398
ios哪裡找小眾app 瀏覽:377
毒霸新聞彈窗是哪個文件 瀏覽:331
雨林木win10 瀏覽:881
寫好的代碼怎麼編程小程序 瀏覽:945
改文件屬性軟體 瀏覽:917
linux網卡重啟新命令 瀏覽:216
win10升級工具下 瀏覽:935
電腦qq怎麼傳文件到手機qq 瀏覽:417
被360隔離的文件在哪個文件夾 瀏覽:971
骷髏教程圖 瀏覽:954
ps淘寶女包修圖教程 瀏覽:568

友情鏈接