2013-08-22 61 views
5

是否有可能強制來自JavaScript/JQuery的任何串行comport?JavaScript/JQuery與SerialPort/COM1通信

谷歌是不是能回答這個問題..但無論如何,它應該有可能.. ENV器是Firefox在我的情況..

想法/知識是非常歡迎的。

親切的磁帶

+0

_ 「但無論如何,它應該是可能的」 _ - 爲什麼它應該是可能?通常,在瀏覽器中運行的JavaScript無法訪問瀏覽器之外的任何內容。這是一個有意識的安全功能。你是說在公共網頁上提供這個com功能(你無法控制用戶可能擁有的瀏覽器),還是隻是談論FF,或者......? – nnnnnn

+0

你是完全正確的 - 我知道..但也許它可以強制它通過about:config或任何..我說的是桌面解決方案,沒有(公共)互聯網和只用於Firefox的使用!我必須解決這個問題..如果這是不可能的,我必須在客戶端安裝一個簡單的服務器,並通過ajax抓住端口 - 這就是後備.. –

回答

2

是的,你可以,但不是一個典型的瀏覽器。瀏覽器被沙箱化,無法訪問本地文件系統(cookie除外),因此惡意網站無法讀取/寫入硬盤。據我所知,沒有辦法來覆蓋這個行爲(短缺寫你自己的瀏覽器)。

但是,這可以使用Node.js在JavaScript中完成。它作爲一個進程而不是在瀏覽器窗口中運行,並且可以訪問文件系統。具體來說,已經有一個用於串行通信的npm模塊(節點庫):https://github.com/voodootikigod/node-serialport

另外,你總是可以啓動一個本地web服務器(通過node.js,php,rails等)。 Web服務器可以訪問文件系統,因此應該可以訪問串行端口。

希望這會有所幫助。

1

kimstik的建議,使用jUART插件的瀏覽器是一個很好的解決方案。

另一種可能性是使用一箇中間件,它有利於串行通信並提供一個Web界面,JavaScript可以使用AJAX請求進行交互。

Python可以被使用,例如,使用pySerialpython-bobo的組合的腳本。

+1

更新日期:2015年9月15日Chrome將不再支持NPAPI和解決方案將可能不再起作用。 [請參閱此處](https://support.google.com/chrome/answer/6213033?hl = en) – nerdwaller