2013-04-05 70 views
2

我想通過Chrome中的Javascript在我的計算機上執行本地程序。在Firefox中,這是可以做到如下在Google Chrome中通過Javascript啓動系統命令

var file = Components.classes["@mozilla.org/file/local;1"] 
    .createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath(cmd); 

var process = Components.classes["@mozilla.org/process/util;1"] 
    .createInstance(Components.interfaces.nsIProcess); 
process.init(file); 

process.run(false, args, args.length); 

可以請任何一個可以幫助我從瀏覽器擴展程序執行本地程序?

感謝

+3

這對於普通Chrome擴展API來說是不可能的。你需要使用[NPAPI](http://developer.chrome.com/extensions/npapi.html)。許多人爲此推薦[Firebreath](http://www.firebreath.org/)框架。我沒有這方面的第一手經驗,所以我不能提供任何代碼。 – 2013-04-05 11:11:29

+0

Hi Rob, 您可以讓我知道,是否有任何教程來創建NPAPI插件,以及如何將這些插件集成到Chrome擴展中? 謝謝 – 2013-04-09 08:58:47

+0

就像我說過的,我從未創建過一個NPAPI插件。我給的任何口水都可以通過研究找到。 [SO]上的[NPAPI標記](http://stackoverflow.com/questions/tagged/npapi?sort=votes)專門用於解決這些問題。我建議看看他們。 – 2013-04-09 09:01:17

回答

-3

你可以調用一個jQuery的AJAX程序,以執行一個PHP腳本,可以使用EXEC執行命令()。 JavaScript是一種客戶端語言,但你可以使用jQuery ...

你可以找出如何在此鏈接:

http://www.sitepoint.com/take-command-ajax/

+0

如果擴展的用戶在他的電腦上運行PHP服務器,這隻會是一種可行的方法。該問題詢問如何在* client *計算機上運行命令,而不是服務器。 – apsillers 2013-04-05 16:42:42

+0

這是正確的apsillers,這個想法是執行一個服務器端腳本,可以是PHP,ASP等 – 2013-04-05 16:53:16

+0

運行服務器端腳本與OP想要做什麼無關。 OP想要一個擴展來啓動一個位於*客戶機*上的可執行文件。例如,讓一個可執行文件在用戶的計算機上運行'C:\ Windows \ notepad.exe',讓用戶在他的計算機上看到該程序打開 - 不涉及服務器。 – apsillers 2013-04-05 16:54:35

1

你不能做到這一點。 Chrome的沙箱安全模型不允許您在用戶的機器上任意執行程序;這可能是非常危險的。理論上可以使用NPAPI來做到這一點,但這種插件不太可能被批准用於Chrome網上應用店。如果這僅用於私人用途,則可以使用NPAPI創建插件,然後執行任何您想要的操作,但您無法通過Chrome網上應用店分發該插件。

+0

嗨Ken Liu, 您能否讓我知道是否有任何在線或離線教程來創建NPAPI插件? 也請讓我知道我應該如何將這些NPAPI插件集成到我的Chrome擴展中? 謝謝 Ramesh – 2013-04-09 08:52:18

+0

https://developer.mozilla.org/zh-CN/docs/Plugins – 2013-04-09 15:28:35