2011-11-10 48 views
2

Javascript(從遠程服務器上的網站運行)如何從用戶的本地計算機訪問數據? 我可以訪問所有用戶的計算機,他們都使用Chrome。 數據可能存儲在一個文件,一個數據庫,我甚至可以在他們的計算機上運行一個網絡服務器,如果需要的話,等等。 有沒有什麼辦法讓我的用戶例如允許我的網站從JavaScript訪問數據? (也許有一個Chrome設置,但我仍然希望他們的瀏覽器是安全的)JavaScript如何從用戶的計算機獲取數據?

+0

您可以發佈Chrome插件或使用Java小程序。 –

+2

爲什麼你想要一個瀏覽器?既然你說你可以在他們的計算機上運行一個服務器,我認爲這可能是一個更好的選擇,因爲它有更多的權限。如果這是因爲您需要JavaScript,請嘗試使用Node.js. – pimvdb

回答

1

聽起來您對數據在用戶計算機中的存儲位置很靈活。在這種情況下,請使用localStorageWeb SQL Databases。 Web SQL數據庫不再是HTML5規範的一部分,但它們受Chrome支持。實際上,使用這兩種方法中的任何一種都可以將數據存儲在用戶計算機上 - 就在瀏覽器中。

編輯:在提供呼叫者ID數據的應用程序,把它推出鍍鉻通過你的網站中包含所需呼叫者ID數據通過查詢字符串參數。然後在您的頁面中,讓它監聽onstorage事件,並在相應的localStorage數據發生更改時更新下拉列表。

在您的來電顯示應用,致電:

%ChromeInstallPath%\chrome.exe "http://foo.com/[email protected]" 

在你caller處理程序,使用這個JavaScript:

window.onload = function() { 
    localStorage.callerId = location.search; 
}; 

在你的頁面的下拉列表中,使用這個JavaScript:

window.onstorage = function() { 
    setDropDownFromCallerId(localStorage.callerId); 
}; 
+0

對不起,我沒有指定數據不是由遠程網站創建的,而是由另一個應用程序創建的。 – Matthew

+0

@Matthew - 你能否澄清一下數據存儲要求是什麼?你說過:「數據可能存儲在文件,數據庫中,如果需要,我甚至可以在他們的計算機上運行網絡服務器等。」您可以在客戶端計算機上運行Web服務器,但不能填充'localStorage'? – gilly3

+0

我需要閱讀更多關於localStorage的信息,但我認爲這只是一個空間客戶端,只有Web應用可以訪問。另一個軟件可以寫入這個空間,並可以通過我的網站上的JS訪問?我會讀更多關於它!謝謝! – Matthew

3

這是不可能的只是使用瀏覽器,因爲如你所說,它不會安全。您可以使用您的用戶必須允許的某種插件,然後才能訪問計算機上的本地數據。

+0

你知道這樣一個插件還是你建議我編碼? – Matthew

+0

如果你告訴我你想要訪問什麼數據,我可能會提出一些建議 –

+0

嗯,更準確地說:「這僅僅是使用*原生瀏覽器頁面JavaScript而不可能的:-) – 2011-11-10 22:02:12

5

據我所知,你不能使用javascript訪問用戶機器上的文件。這將是一個巨大的安全漏洞。你必須編寫一個客戶端(而不是網絡)應用程序(Windows應用程序或任何你使用的技術)。

+0

客戶端應用程序如何幫助我的遠程服務器訪問用戶計算機上的數據(這是我在問題中描述的要求)?你的建議不會有任何幫助。 – Matthew

+2

@matthew,你聽起來像一個傢伙。 – boom

+0

@boom .......? – Matthew

0

您的訪問意味着什麼?在處理請求期間,服務器端代碼是否需要獲取其他信息?

這是數據是獨家您的應用程序(也就是,只有你創建,讀取,更新它。)

如果此數據是唯一到您的應用程序,那麼爲什麼不將其存儲在HTML 5 Local Storage

+0

>>服務器端代碼是否需要在處理請求期間獲取其他信息?不,否則我不會建議JavaScript。服務器端代碼不需要數據。客戶端代碼確實需要。 我應該根據客戶端的數據在組合框中選擇一個項目。 數據不是由網絡應用程序創建的。 – Matthew

+1

@matthew,你聽起來像一個傢伙。 – boom

+0

@boom .......? – Matthew

相關問題