From 0f30e712edcea5d2573a39e544d805a4b71e950c Mon Sep 17 00:00:00 2001 From: Allen Date: Mon, 19 May 2025 00:10:49 +0800 Subject: [PATCH] =?UTF-8?q?webview=E7=9A=84URL=E5=8F=91=E7=94=9F=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E6=97=B6=EF=BC=8C=E5=8D=B3=E5=BD=93=E5=89=8D=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E5=8F=91=E7=94=9FURL=E8=B7=B3=E8=BD=AC=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E9=87=8D=E6=96=B0=E8=AE=BE=E7=BD=AE=E7=BC=A9=E6=94=BE?= =?UTF-8?q?=E6=AF=94=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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);