diff --git a/src/index.ts b/src/index.ts index 64cafe3..4d5d75f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -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);