You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Electron开发应用:获取Chrome当前打开网站标识信息

实现Electron应用获取Chrome当前打开网站标识的方案

核心思路

要获取Chrome当前活跃标签页的网站标识,可通过两种可靠方式实现:借助Chrome远程调试协议(准确性高),或解析系统窗口标题(无需额外配置)。

方案一:利用Chrome远程调试协议

  1. 开启Chrome远程调试

    • Windows:右键Chrome快捷方式→属性,在目标栏末尾追加 --remote-debugging-port=9222,重启Chrome
    • macOS:终端执行 open -a "Google Chrome" --args --remote-debugging-port=9222
    • Linux:终端执行 google-chrome --remote-debugging-port=9222
  2. Electron中请求调试接口
    通过Node.js内置模块请求调试接口,解析标签页数据提取网站标识(以域名为例):

    const http = require('http');
    
    http.get('http://localhost:9222/json', (res) => {
      let rawData = '';
      res.on('data', chunk => rawData += chunk);
      res.on('end', () => {
        const tabs = JSON.parse(rawData);
        const activeTab = tabs.find(tab => tab.active);
        if (activeTab) {
          // 提取域名作为网站标识,如https://twitter.com
          const siteIdentifier = new URL(activeTab.url).origin;
          console.log('当前网站标识:', siteIdentifier);
        }
      });
    }).on('error', err => {
      console.error('连接Chrome调试端口失败:', err.message);
    });
    

方案二:解析系统窗口标题(跨平台兼容性稍弱)

Chrome窗口标题通常包含页面标题或域名,可通过系统命令获取后提取标识:

  • Windows示例代码:
    const { exec } = require('child_process');
    
    exec('powershell -Command "(Get-Process chrome | Where-Object {$_.MainWindowTitle -ne \'\'}).MainWindowTitle"', (err, stdout) => {
      if (!err) {
        const activeTitle = stdout.trim().split('\n')[0];
        // 尝试从标题中提取URL域名,若失败则用标题作为标识
        const domainMatch = activeTitle.match(/(https?:\/\/[^\/\s]+)/);
        const siteIdentifier = domainMatch ? domainMatch[1] : activeTitle;
        console.log('当前网站标识:', siteIdentifier);
      }
    });
    

注意事项

  • 方案一需用户手动开启调试模式,数据准确性高,适合技术场景
  • 方案二无需额外配置,但标题解析可能存在误差,需根据场景做适配
  • 需处理Chrome多窗口情况,优先识别当前活跃窗口的信息

内容的提问来源于stack exchange,提问作者Wataru Ono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:32:14