2014-01-22 154 views
1

我有一個文本文件,我想在我的HTML頁面中閱讀,兩者都在同一個目錄中,我沒有運行服務器。我打算讓我的用戶脫機使用腳本(基本上是基於表達式的文本處理並保留新的行字符)。如何從JavaScript中的輸入文件中讀取文本?

  1. 我嘗試AJAX調用,但大多是跨域起源問題發生,我知道大多數用戶都會有這樣的安全在許多瀏覽器tighened了,所以它的使用不會規避這只是在我的瀏覽器。

  2. 我想支持許多瀏覽器,包括IE7,8等不支持HTML5 filereader的舊瀏覽器。出於同樣的原因,使用filesystemobject或activex讀取不好。

  3. 讀取文件後,用戶選擇它作爲輸入,這是可能的嗎?否則,我會沒有選擇,然後使用其他技術,如PHP,Java等可能期望我的用戶設置這些。

請原諒我,如果我重複這一點,但我是一個初學者的Web開發人員。我知道通過JavaScript閱讀本地文件是不可能的,但有沒有其他方式?

+1

VB腳本支持客戶端文件閱讀並且只有ie .. javascript不支持文件處理 – niko

+0

只有服務器端和php不能 – niko

+0

好吧,如果用戶上傳文件或做一些配置沒有竅門?我的意思是最後一件事是將文本文件內容複製並粘貼到文本框中。 – user3172833

回答

1

如果你不支持FileReader,那麼答案几乎不是(至少,如果你想支持大範圍的瀏覽器,而不是依賴瀏覽器y的方便功能x)。除非:確實增加了運行應用程序和獲取某種本地服務器的要求(例如node.js,Apache,TomCat等,但正如您所說的那樣,這將大大增加需求並且對用戶來說變得麻煩)。

你也可以重新考慮你想要達到的目標。你想要讀取的文件的內容是什麼?不能夠將這些內容是你在提供給用戶的HTML文件的一部分(即一個大的JSON對象的腳本標籤裏面?)

在如何使用Node.js的可能性:

的Node.js安裝起來非常簡單,假設您要求用戶安裝它,您可以將其用作本地服務器,它是一個大小約爲兩行的nodejs腳本:)。在本地運行它也可以省略在任何地方上傳任何東西的需要,因爲您可以使用fs對象直接從文件系統讀取數據(請參閱sitepoint.com/accessing-the-file-system-in-node-js)。

STILL:無論從設計的角度易用性的使用點你可能要訴諸使用任何其他技術或包括文本文件內容的HMTL內部文件

+0

是的,這將是最後一個選項,我想從文件操縱文本,我有一個簡單的解決方案是讓他們複製並粘貼到文本框中 – user3172833

+0

我對節點js的經驗不多,但如果我創建一個簡單服務器使用節點js,並允許用戶將他的文本文件上傳到它,然後從那裏使用它。這是可能的嗎?是否需要管理員權限或用戶配置?最初它似乎運行一個服務器,它也需要節點程序。 – user3172833

+0

Node.js的安裝非常簡單,假設您要求用戶安裝它,您可以將它用作本地服務器,它是一個大小約爲兩行的nodejs腳本:)。在本地運行它也會省略上傳任何地方的需求,因爲您可以使用fs對象直接從文件系統讀取數據(請參閱http://www.sitepoint.com/accessing-the-file-system-in-node- JS /)。 仍然:從設計和易用性的角度來看,您可能希望訴諸於使用其他技術,或在HMTL文件中包含文本文件內容... –