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

Chrome扩展开发问题:无法获取当前页面域名拼接目标URL

解决方案:Chrome扩展获取当前页面域名并拼接URL

你的问题出在弹窗的window.location指向的是弹窗自身的页面,而非当前浏览的标签页,所以需要使用Chrome扩展的chrome.tabs.queryAPI来获取活跃标签页的URL。

修正后的script.js代码

// 获取当前窗口的活跃标签页
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
  // 取出第一个标签页的URL(active标签页只会有一个)
  const currentTabUrl = tabs[0].url;
  // 使用URL对象解析域名,比正则更可靠
  const urlObj = new URL(currentTabUrl);
  // 获取主域名,自动去除www前缀和协议
  let domain = urlObj.hostname;
  // 可选:去除www前缀(如果需要)
  domain = domain.replace(/^www\./i, "");
  
  // 拼接目标URL并设置给iframe
  const targetUrl = `https://www.example.com/${domain}`;
  document.getElementById("currentsite").src = targetUrl;
});

关键说明

  • chrome.tabs.query参数:{active: true, currentWindow: true}确保获取的是当前窗口中正在浏览的标签页,而非其他窗口的标签页。
  • URL对象解析:使用原生URL对象处理URL比正则表达式更稳定,能自动处理各种协议(http/https)、端口等情况。
  • 异步操作:chrome.tabs.query是异步API,必须在回调函数内处理结果,不能同步获取值。

验证权限

你的manifest.json已经添加了tabs权限,这是使用chrome.tabs.query的必要条件,无需额外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:10:46