一般来说,我知道不能在浏览器中从 javascript 调用系统库或 dll。但在许多应用程序中,我看到浏览器启动了其他进程。例如:
- 只要我打开 Google Plus,它就会在后台启动 googletalkplugin.exe(来自文件夹
C:\Users\Jatin\AppData\Local\Google\Google Talk Plugin
)。 (可以在资源监视器中查看) - 与 Facebook 视频聊天相同。第一次,它要求我安装一个插件,稍后当我开始聊天时,它会启动一个进程。
- 在 Torrent 网站上,它们提供磁力链接。单击 torrent 磁力链接,它会打开我的系统默认 torrent 客户端。
在某种程度上,flash 和 applet 也是如此。
浏览器如何触发另一个进程并与之通信?是否缺少任何开放标准?
最终我想做视频、录音和截屏。对于屏幕录制,Java 小程序似乎是唯一的解决方案,但小程序有其自身的问题。
最佳答案
Flash 播放器和小程序使用插件,它们是操作系统的 native 应用程序(即(主要)不是 JavaScript),它们不是扩展而是插件。对于 Chrome,请参阅 chrome://plugins/以查看已安装插件的列表。
编写浏览器插件,引用How to write a browser plugin?
种子链接则完全不同,它们是通过注册一个url协议(protocol)来处理的。换句话说,你对计算机说,从现在开始,我将运行任何具有 torrent
协议(protocol)的 url,即:以 torrent://
开头>。请参阅:Uri Scheme
当浏览器看到 uri 时,它知道它本身不处理 torrent
协议(protocol),所以它把它委托(delegate)给操作系统,操作系统知道如何处理它。
如果浏览器确实知道如何处理它,它可能不会将其委托(delegate)给操作系统。例如:Google Chrome 可以很好地处理 mailto:
链接,而无需注册要由操作系统处理的 mailto
协议(protocol)。
关于javascript - 使用 javascript 启动后台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589669/