如何在浏览器历史导航中禁用 window 标题更新?
How to disable window title update on browser history navigation?
我在创建 window 时设置标题,并根据用户操作根据需要更新它。
但是,当使用历史导航功能 goBack
和 goForward
(通过 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 标题时,这不会触发。
我在创建 window 时设置标题,并根据用户操作根据需要更新它。
但是,当使用历史导航功能 goBack
和 goForward
(通过 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 标题时,这不会触发。