2012-02-10 88 views
3

當前我使用此代碼來讀取帶文字的txt文件並執行一些操作。但是,這個特定的代碼需要將html部署在服務器上。有沒有什麼解決方法,我可以用別的東西替代這個代碼來讀取文件而不需要服務器?Javascript讀取文本文件脫機

var xhr = new XMLHttpRequest(); 
xhr.open("GET", "dictionary.txt", false); 
xhr.send(null); 
var words= xhr.responseText.split(","); 
+0

爲什麼你需要讀取文件?爲什麼不把數據包含在頁面中呢? – robertc 2012-02-11 01:23:36

回答

0

您可以隱藏頁面的iframe,其SRC =「dictionary.txt」,

和讀取或操縱iframe的本地內容時,它的onload事件觸發。

2

您無法讀取從客戶端的計算機文件,所以您正在閱讀的文本文件必須在同一臺服務器上的JavaScript上。但是,如果您要從計算機加載HTML文件(例如file:// c:/../test.html),則可能只能通過使用相對路徑讀取位於計算機上的文件。

+0

我想讀取位於我的網站文件夾根目錄但不使用Ajax的文件dictionary.txt。有沒有辦法做到這一點?如果用戶選擇一個文件,HTML 5只允許我這樣做。我希望在加載HTML時自動完成此操作 – 2012-02-10 17:51:34

+0

沒有Ajax就不可能。但我不太確定。您可以使用applet或FileSystem對象,也可以使用NativeClient。但除了Ajax之外,沒有其他標準方法。看到這個:http://www.javascripter.net/faq/reading2.htm – riship89 2012-02-10 17:59:23

3

不可能在服務器域之外調用Ajax(除非使用scriptagproxy,這也需要您有一些服務器端配置)。因此,簡而言之,您無法使用Ajax調用來讀取本地計算機上的文件。

您可能會喜歡this文章。

文件選擇可以通過輸入或拖放(否則)。請參閱:this

+0

沒有這是我現有的代碼,我使用的服務器。我想更改此代碼,以便我可以使用我的Web應用程序並脫機。 HTML 5只允許我在用戶選擇文件時打開文件。我想要自動讀取文件。 – 2012-02-10 17:50:11

+0

https://developer.mozilla.org/en/Using_files_from_web_applications – riship89 2012-02-10 17:53:50