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

Chrome扩展:如何获取最后打开标签页的页面内容

解决Chrome扩展新标签页内容获取问题

方法一:通过标签页创建回调+主动注入脚本获取内容

在background.js里,创建新标签页后利用回调拿到标签页ID,等页面加载完成后主动注入脚本提取内容:

// background.js
var newUrl = "https://www.qwer.com"; // 务必添加完整协议头
chrome.tabs.create({url: newUrl}, function(newTab) {
  // 监听标签页加载状态,确保内容已渲染完成
  chrome.tabs.onUpdated.addListener(function listener(tabId, info) {
    if (tabId === newTab.id && info.status === 'complete') {
      chrome.tabs.onUpdated.removeListener(listener); // 移除监听避免重复触发
      // 注入脚本获取页面文本
      chrome.scripting.executeScript({
        target: {tabId: newTab.id},
        func: function() {
          return document.body.innerText;
        }
      }, function(results) {
        var pageText = results[0].result;
        console.log("新标签页文本内容:", pageText);
        // 此处可对获取到的文本做后续处理
      });
    }
  });
});

需要在manifest.json中声明对应权限:

{
  "permissions": ["scripting", "tabs"],
  "host_permissions": ["https://www.qwer.com/*"]
}

方法二:配置content_script自动注入目标页面

修改manifest.json的content_scripts配置,让脚本自动注入到目标域名的页面:

{
  "content_scripts": [
    {
      "matches": ["https://www.qwer.com/*"],
      "js": ["content.js"]
    }
  ]
}

在content.js中,页面加载完成后把内容发送给background:

// content.js
window.addEventListener('load', function() {
  var pageText = document.body.innerText;
  chrome.runtime.sendMessage({type: "PAGE_TEXT", text: pageText});
});

最后在background.js里监听消息接收内容:

// background.js
chrome.runtime.onMessage.addListener(function(message, sender) {
  if (message.type === "PAGE_TEXT") {
    console.log("收到新标签页文本:", message.text);
    // 处理文本内容
  }
});

注意事项

  • 必须使用完整URL(带http://或https://),否则标签页创建和权限匹配会出问题。
  • 如果目标页面是动态渲染的SPA,load事件可能无法捕获全部内容,可改用DOMContentLoaded或监听元素变化来确保内容加载完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:15:16