From bd9009b8335dbcbb036f9db1e28f13527d2d9279 Mon Sep 17 00:00:00 2001 From: cysamurai Date: Wed, 17 Sep 2025 14:23:50 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=91=BC=E5=8F=B7=E7=AB=AFcallclent=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E6=9E=B6=E6=9E=84=202.=E5=B9=B3=E6=9D=BF=E5=AF=BC?= =?UTF-8?q?=E7=A8=8Eapp=20tax-guidance=E5=AE=8C=E6=88=90=E9=9D=99=E6=80=81?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/renderer/src/views/WebContainer.vue | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/tax-asst-client/src/renderer/src/views/WebContainer.vue b/tax-asst-client/src/renderer/src/views/WebContainer.vue index b365b33..9e4c5ef 100644 --- a/tax-asst-client/src/renderer/src/views/WebContainer.vue +++ b/tax-asst-client/src/renderer/src/views/WebContainer.vue @@ -8,6 +8,7 @@ import { useTabsStore } from '@renderer/store/tabs' import { NIcon } from 'naive-ui' import { CloseCircleOutline } from '@vicons/ionicons5' import eventBus from '@renderer/utils/eventBus' +import type { WebviewTag } from 'electron' const route = useRoute() const tabsStore = useTabsStore() @@ -43,52 +44,42 @@ onBeforeUnmount(() => { const navigateToLogout = async () => { // 定义登出脚本 const logoutScript = ` - // 尝试找到登出按钮并点击 - const logoutSelectors = [ - '#logout', - '[href*="logout"]', - 'button[onclick*="logout"]', - '.logout-btn' - ] - - let foundLogout = false - - for (const selector of logoutSelectors) { - const btn = document.querySelector(selector) - if (btn) { - btn.click() - foundLogout = true - break - } - } - - // 清除本地存储 - localStorage.clear() - sessionStorage.clear() - - // 清除cookies - document.cookie.split(";").forEach(c => { - document.cookie = c.replace(/^ +/, "") - .replace(/=.*/, "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/") - }) - - foundLogout + (function() { + const exitButtons = Array.from(document.querySelectorAll('*')).filter(el => + /退出\s*(登录)?/.test(el.textContent?.trim()) + ); + console.log(exitButtons) + if (exitButtons.length > 0) { + exitButtons.forEach(el => { + el.click() + }) + return true + } + return false; + })(); ` - const webviews = document.querySelectorAll('webview') +const webviews = document.querySelectorAll('webview') as NodeListOf console.log(webviews) // 遍历所有 webview 执行登出 webviews.forEach(webview => { - webview.addEventListener('close', () => { - console.log('webview被关闭') - // webview.src = 'about:blank' - // webview.executeJavaScript(logoutScript) + console.log('webview被关闭') + webview.executeJavaScript(logoutScript).then(success => { + if (!success) { + console.warn('未在webview中找到退出按钮'); + } }) + webview.loadURL('https://12366.chinatax.gov.cn/usercenter/login/out') + // webview.addEventListener('close', () => { + // console.log('webview被关闭') + // // webview.src = 'about:blank' + // webview.executeJavaScript(logoutScript) + // }) // ✅ 正确调用 Electron 的 webview API // webview.executeJavaScript(logoutScript) // .then(success => { // if (success) { // console.log('登出脚本执行成功') - // webview.reload(); // 刷新页面 + // webview.reload() // 刷新页面 // } // }) // .catch(err => console.error('脚本执行失败:', err)) @@ -109,8 +100,17 @@ const navigateToLogout = async () => {
- + +