webview的URL发生变化时,即当前窗口发生URL跳转时,重新设置缩放比例

This commit is contained in:
Allen 2025-05-19 00:10:49 +08:00
parent 0b1148e6ea
commit 0f30e712ed

@ -193,7 +193,31 @@ async function addTabAsync(tabGroup: TabGroup, menuItem: MenuItem, allowCloseTab
* @param tab
*/
function listenWebviewTitleChange(webview: Electron.WebviewTag, tab: Tab): void {
// 在webview加载完成后获取并设置标签页的标题和图标
// 监听 URL 变化事件
webview.addEventListener('did-navigate', async (event: Electron.DidNavigateEvent) => {
const url: string = event.url;
const zoomFactor: number = await window.electronAPI.getZoomFactorByUrl(url);
const currentZoomFactor: number = webview.getZoomFactor();
if (currentZoomFactor !== zoomFactor) {
webview.setZoomFactor(zoomFactor);
console.log('URL changed, modify zoom factor:', zoomFactor);
}
});
// 监听 URL 在同一个页面内的变化事件(如 hash 变化)
webview.addEventListener('did-navigate-in-page', async (event: Electron.DidNavigateInPageEvent) => {
const url: string = event.url;
const zoomFactor: number = await window.electronAPI.getZoomFactorByUrl(url);
const currentZoomFactor: number = webview.getZoomFactor();
if (currentZoomFactor !== zoomFactor) {
webview.setZoomFactor(zoomFactor);
console.log('URL in-page changed, modify zoom factor:', zoomFactor);
}
});
// 监听webview的标题变化并更新标签页的标题和图标
webview.addEventListener('did-finish-load', async () => {
const title: string = webview.getTitle();
tab.setTitle(title);