最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - chrome.tabs.getCurrent() or tabs.query() - Stack Overflow

programmeradmin3浏览0评论

Both methods are producing the same error Uncaught TypeError: Cannot read property 'query' of undefined for my content script... I've already looked at How to fetch URL of current Tab in my chrome extension using javascript and How do you use chrome.tabs.getCurrent to get the page object in a Chrome extension? though I'm still not sure what I'm doing incorrectly.

manifest.json

{
  "name": "Extension Tester",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "Tester",
  "permissions": [
    "tabs"
  ],
  "content_scripts": [
    {
      "matches": ["/"],
      "js": [
        "inject.js"
      ]
    }
  ]
}

inject.js

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  console.log(tabs[0].id);
});

or

chrome.tabs.getCurrent(function (tab) {
  console.log(tab.id);
});

Both methods are producing the same error Uncaught TypeError: Cannot read property 'query' of undefined for my content script... I've already looked at How to fetch URL of current Tab in my chrome extension using javascript and How do you use chrome.tabs.getCurrent to get the page object in a Chrome extension? though I'm still not sure what I'm doing incorrectly.

manifest.json

{
  "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

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  console.log(tabs[0].id);
});

or

chrome.tabs.getCurrent(function (tab) {
  console.log(tab.id);
});
Share Improve this question edited May 23, 2017 at 12:32 CommunityBot 11 silver badge asked Oct 17, 2014 at 0:10 Jacob EdwardJacob Edward 1911 gold badge2 silver badges10 bronze badges 2
  • 2 possible duplicate of chrome.tabs returns undefined in content script – Xan Commented Oct 17, 2014 at 7:02
  • 2 Definitely a duplicate chrome.tabs returns undefined in content script – Marco Bonelli Commented Oct 17, 2014 at 10:55
Add a comment  | 

1 Answer 1

Reset to default 19

Cannot use chrome.tabs in content script,you need to use chrome.runtime To know the tab id of the content script, first use chrome.runtime.sendMessage to send a message, and the background page receive it.

Using chrome.runtime.onMessage.addListener, the callback function is

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

so, you will know the tab id by sender.id

发布评论

评论列表(0)

  1. 暂无评论