如何在浏览器历史导航中禁用 window 标题更新?

How to disable window title update on browser history navigation?

我在创建 window 时设置标题,并根据用户操作根据需要更新它。

但是,当使用历史导航功能 goBackgoForward(通过 react-router-dom useNavigate)时,window 的标题会自动更新并且采用 window 加载的 HTML 文件中定义的标题值。由于我的 HTML 文件中没有定义任何标题,它只会让标题消失。

const appWindow = new BrowserWindow({
   title: app.name,
   webPreferences: {
      nodeIntegration: false,
      contextIsolation: true,
      enableRemoteModule: false,
      preload: path.join(__dirname, "../preloads/app.js")
   }
});

appWindow.loadURL(getWindowUrl("index"));

有没有办法禁用此行为,使标题不更新?
我正在使用电子版 17.1.0 和 react-router-dom 6.2.1.

Electron 的 BrowserWindow class 有 "page-title-updated" event 可以取消原生 window 标题的更新。例如,

window.on ("page-title-updated", (event, title, explicitSet) => {
    e.preventDefault ();
});

这将取消源自 window 文档中的任何 window 标题更新。请注意,您可以使用 title 参数检查特定标题,以便仅禁止某些 window 标题。

根据上面链接的文档,如果标题是通过使文档的 URL 成为 window 标题而创建的,explicitSet 将是 false

请注意,当您使用 Electron 的 API 设置 window 标题时,这不会触发。