javascript - 更改 Electron 窗口背景颜色而不需要重新创建窗口?

标签 javascript electron

我想在 Electron 窗口中动态设置背景颜色,而无需重新创建窗口。不幸的是,就我的目的而言,仅仅使用 CSS 设置 body 等元素的颜色是不够的。

看来只有BrowserView has a setBackgroundColor function according to the documentation.

BrowserWindow确实有这个功能,但不幸的是它不起作用。有没有已知的替代方案?

最佳答案

直接在 BrowserWindow 上应用背景颜色时,它对我有用。 它似乎没有记录,但它 exists (从 0.34.1 开始)

const { app, BrowserWindow } = require('electron')

function createWindow () {
  let mainWindow = new BrowserWindow({
    transparent: true
  })
  mainWindow.loadURL("http://browserify.org") // transparent background
  mainWindow.setBackgroundColor('#56cc5b10') // turns opaque brown
}
app.on('ready', createWindow)
<小时/>

更新(2021):也可以在创建窗口时直接设置背景颜色:mainWindow = new BrowserWindow({backgroundColor: "#RRGGBB", ... });

(谢谢,@carlosrafaelgn)

<小时/>

从渲染器进程中执行相同的操作似乎确实有问题。

但是我注意到,如果您取消聚焦然后聚焦窗口,它将开始正常工作。

  <script>
    const { remote } = require('electron')
    const mainWindow = remote.getCurrentWindow()
    mainWindow.setBackgroundColor('#56cc5b10')
    mainWindow.blur()
    mainWindow.focus()
  </script>

关于javascript - 更改 Electron 窗口背景颜色而不需要重新创建窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52599019/

相关文章:

javascript - 如果数据很大,JQuery ajax 不会在 POST 中发送完整数据

reactjs - 在使用 React 和 Electron 登录后,构建登录并继续到主页的最佳方式是什么

node.js - 为什么我不能在 Electron 中使用脚本标签引用 jQuery?

javascript - Google Analytics - 阻止 HTML/页面呈现

javascript - Angularjs "Controller as"或 "$scope"

javascript - JQuery UI Draggable 设置与元素不同的 hitbox 或设置多个元素

html - 将补白添加到正文时,div被推出屏幕外

javascript - 在 JS 生成的 HTML 中包含 AngularJS 代码

javascript - 如何使用微软认知API进行面部情绪检测?

javascript - Electron.js无法通过jspdf保存pdf文件