JavaScript/JQuery如何与串口/COM1通信

7

是否可能强制从JavaScript / JQuery等任何通信到任何串行端口?!

谷歌无法回答这个问题..但无论如何应该是可能的..在我的情况下,环境是Firefox。

欢迎提供想法/知识。

谢谢!


“但无论如何,这应该是可能的。” - 为什么会可能呢?一般来说,在浏览器中运行的 JavaScript 无法访问浏览器外部的任何内容。这是一项有意的安全功能。您是在谈论在公共网页上提供此 com 功能(在这种情况下,您无法控制用户可能使用的浏览器),还是仅谈论 FF,或者其他情况? - nnnnnn
你是完全正确的 - 我知道.. 但也许可以通过about:config或其他方式强制执行它.. 我在谈论一个桌面解决方案,没有(公共)互联网,仅限于Firefox使用!我必须解决这个问题.. 如果不可能,我就必须在客户端上安装一个简单的服务器,并通过ajax获取端口 - 这是备选方案.. - Alex Tape
5个回答

8

5

根据这篇博客文章,Chrome已经停止支持除ChromeOS以外的其他系统中的Chrome应用。 - JIntro

4
是的,您可以实现此操作,但无法使用常规浏览器完成。浏览器被隔离以防止其访问本地文件系统(除了cookie),以防恶意站点读取/写入您的硬盘驱动器。据我所知,没有办法覆盖此行为(除非编写自己的浏览器)。
但是,可以使用Node.js中的JavaScript来实现此操作。它作为进程运行,而不是在浏览器窗口中,并且可以访问文件系统。具体而言,已经有一个npm模块(node库)用于串行通信: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,因此该解决方案可能不再可行。请参见此处 - nerdwaller

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接