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
1 Answer
Reset to default 19Cannot 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