2013-02-26 257 views
3

誰能幫助我,我陷在創建文件(臨時)與擴展(說的.csv)在本地磁盤上,我嘗試使用ActiveX對象,但只在Internet Explorer中正常工作,得到了一個錯誤,當我試圖用其它瀏覽器。通過google搜索,我知道ActiveX只在IE中工作,所以當它在不同的瀏覽器中嘗試時會產生錯誤。除IE以外的其他瀏覽器的ActiveX對象的替代方案?

var fso, f1; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    f1 = fso.GetFile("c:\\test.txt"); 
    alert(f1); 

任何人都可以提出替代方案,可以是非常有用的。

+1

其他瀏覽器沒有對應的功能。您可以找到最近的可能是[HTML5 localStorage](https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage)。 – Teemu 2013-02-26 10:47:51

+0

感謝您的回覆,我想通過使用javascript在本地磁盤中創建的文件中通過ajax存儲來自Web服務的數據。 – pavan 2013-02-26 10:52:40

+1

我可以問爲什麼可能有更好的選擇?如果您正在調用Web服務,那麼我認爲您可以訪問某些服務器端代碼/腳本,以便在此任務更適合的情況下實現跨瀏覽器兼容性。 – webnoob 2013-02-26 10:54:08

回答

2

其他文章涵蓋了有關使用Html 5存儲到本地計算機的所有信息,所以我不會詳細介紹這些內容,但這僅僅適用於Html 5個兼容的瀏覽器(儘管大多數瀏覽器現在兼容Html 5,但我不知道你的項目需求)。

另一種方法是創建/使用服務器端代碼(ASP.NET,PHP等)保存文件,然後提供一個鏈接,這樣用戶就可以下載該文件。您仍然可以將其保存爲.csv文件,以便用戶在下載後可以在Excel中打開它。

編輯:

我會做的是改變你的web服務,這樣纔將文件保存到光盤(詳細信息:here)。然後,而不是從Web服務返回文件,而是返回Url下載它。然後,您可以將用戶重定向到使用JS的鏈接。

+0

謝謝,你能提供一些鏈接,我使用vb.net。 – pavan 2013-02-26 11:18:48

+0

請參閱我的編輯。 – webnoob 2013-02-26 11:56:53

0

目前的讀數沒有標準的方式,並從和到本地硬盤驅動器寫入文件,你可能想看看這個鏈接:

http://html5please.com/#file

3

你的問題是該瀏覽器的實現ECMAScript(JavaScript)不允許您寫入客戶端磁盤。微軟反向工程JavaScript,並將其命名爲JScript。儘管基礎是相同的,MS添加了這些ActiveX對象,並且編譯器(JScript可以被編譯,是的)。

總之,JScript中可以使用的不僅僅是瀏覽器的任務多,所以MS提供ActiveX對象,以使某些形式的I/O。您只能在IE瀏覽器其他上使用HTML5的新DOM Storage對象。 Teemu提供了一個指向文檔的鏈接

+1

很好的答案。我只是說在非ActiveX瀏覽器中不可能做到這一點。 HTML5可以做一些事情,但所有瀏覽器都不支持。 OP應該找到另一種方式來實現他/她想要的。 – OptimusCrime 2013-02-26 11:17:24

+0

然後人們在HTML5和其他瀏覽器之前做了什麼? – Pierre 2014-04-13 20:46:25

+0

@Pierre:你認真嗎? HTML5不是那麼古老...無論如何:人們使用會話,cookie和隱藏字段(作爲最後的手段) – 2014-04-14 06:56:40

相關問題