首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chrome.tabs.getCurrent()或tabs.query()

chrome.tabs.getCurrent()或tabs.query()
EN

Stack Overflow用户
提问于 2014-10-17 08:10:39
回答 1查看 16.5K关注 0票数 8

这两种方法都为我的内容脚本生成了相同的错误Uncaught TypeError: Cannot read property 'query' of undefined ...我已经看过How to fetch URL of current Tab in my chrome extension using javascriptHow do you use chrome.tabs.getCurrent to get the page object in a Chrome extension?了,尽管我仍然不确定我做错了什么。

manifest.json

代码语言:javascript
复制
{
  "name": "Extension Tester",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "Tester",
  "permissions": [
    "tabs"
  ],
  "content_scripts": [
    {
      "matches": ["https://www.google.com/"],
      "js": [
        "inject.js"
      ]
    }
  ]
}

inject.js

代码语言:javascript
复制
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  console.log(tabs[0].id);
});

代码语言:javascript
复制
chrome.tabs.getCurrent(function (tab) {
  console.log(tab.id);
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-20 20:45:05

无法在内容脚本中使用chrome.tabs,您需要使用chrome.runtime来了解内容脚本的标签id,首先使用chrome.runtime.sendMessage发送消息,后台页面接收消息。

使用chrome.runtime.onMessage.addListener时,回调函数为

function(any message, MessageSender sender, function sendResponse) {...};

因此,您可以通过sender.id知道选项卡id

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26415925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档