轉(zhuǎn)自: http://news.csdn.net/a/20091127/215284.html
日前,Mozilla 的 Arun Ranganathan 向 W3C 提交了一個(gè)草案,旨在推出一個(gè) JavaScript API,讓 JavaScript 腳本直接操作本地文件,F(xiàn)irefox 的最新瀏覽器版本中已經(jīng)對(duì)該 API 提供了大量的支持,不過(guò)出于安全考慮,該API 將只對(duì)本地文件提供有限的訪問(wèn)。
該 API 引入了一個(gè) FileReader 對(duì)象,可以異步加載本地文件系統(tǒng)中的文件,并允許開(kāi)發(fā)者為諸如加載失敗,進(jìn)度,加載完成等事件分配回調(diào)函數(shù),它提供的方法可以從本地文件中讀取文本或二進(jìn)制數(shù)據(jù),并通過(guò)一個(gè) abort 方法隨時(shí)打斷操作。
FileReader 對(duì)象使客戶端的文件訪問(wèn)成為現(xiàn)實(shí),用戶不必再象以前那樣首先將 文件上傳 到服務(wù)器才能處理,事實(shí)上,IE 和 Firefox 已經(jīng)擁有一些非標(biāo)準(zhǔn)的方法訪問(wèn)本地文件,但這些方法并非標(biāo)準(zhǔn) JavaScript 行為。
FileReader 對(duì)象并不需要特別的權(quán)限,但出于顯然的安全考慮,直接使用文件路徑進(jìn)行訪問(wèn)是不允許的,必須結(jié)合常規(guī)的 HTML file 對(duì)象,用戶點(diǎn)擊瀏覽之后,選擇本地文件,JavaScript 再通過(guò) DOM 引用該文件并進(jìn)行操作,這個(gè)機(jī)制使得該 API 相對(duì)安全一些,因?yàn)槿魏伪镜匚募墨@取都需要用戶的人工參與。
以下例子使用該 API 打開(kāi)一個(gè)本地文件并將文件內(nèi)容顯示在一個(gè) div 容器中,我們甚至可以在 div 上加上 contentEditable 屬性,用戶可以直接編輯文件的內(nèi)容,不過(guò),該 API 并沒(méi)有提供將文件內(nèi)容寫回本地文件的方法,因此你編輯的內(nèi)容無(wú)法保存。
隨著 JavaScript 引擎的效率在各大瀏覽器的顯著提高,JavaScript 可以做越來(lái)越多的事,本地文件 API 的引入將讓很多有趣的功能成為現(xiàn)實(shí)。盡管該 API 并非多么重大的技術(shù)革命,但它將拓展 Web 應(yīng)用的視野,讓 Web 平臺(tái)實(shí)現(xiàn)越來(lái)越多的功能。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
