运行 JavaScript 应用在浏览器之外

Running JavaScript app outside of the browser

我在浏览器中为 运行 制作了几个小部件,只是基本的 JavaScript 和 HTML。它们是具有空白背景和 CPU 用法之类的小工具,以及类似的小玩具。

我最初开发这些工具是为了作为网站视图的组件存在于网页上。有没有一种方法可以让我将这些东西带到浏览器之外,例如 Chrome,让我的 CPU 使用应用程序覆盖在我的桌面上,这样我仍然可以看到它后面的东西,比如电影正在播放时,或玩电子游戏?甚至可以启动一个 javascript 仅 运行 作为桌面应用程序的程序?

只要我可以在桌面上安装此应用程序或 运行 作为独立的 Node.js 应用程序,依赖浏览器就可以了。这是怎么做到的?我最近听说像 Discord 这样的桌面应用程序通过语音通信来做类似的事情,并且在游戏中有覆盖。

作为一个网站,答案是否定的。但是,您可以创建一个 Node 应用程序,它可以 运行 作为普通的可执行文件。

我相信 Spotify, and Slack(在撰写本文时)是 Node 包装应用程序的好例子。

几个选项:

这些项目在 github.

上有一些非常重要的明星计数

Electron

The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on Node.js and Chromium.

Github 的 Atom editor 是使用 Electron 构建的。

Slack 也使用 Electron。

Electron's official site

node-webkit

NW.js is an app runtime based on Chromium and node.js. You can write native apps in HTML and JavaScript with NW.js. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies.

非官方Facebook Messenger for Desktop是使用node-webkit构建的。

其他很酷的项目:

检查 Sciter,它是专门设计为桌面应用程序的可嵌入 HTML/CSS UI 引擎。

但它支持透明 HTML windows 和窗口 HTML 弹出元素:

并检查 Sciter technology introductory article