chrome.tabs.create is giving an error - "Uncaught TypeError: Cannot call method 'create' of undefined"
Asked Answered
C

1

5

My manifest.json contains

"content_scripts": [
  {
  "matches": ["http://www.facebook.com/*","https://www.facebook.com/*"],
   "js": ["js/jquery-1.7.2.min.js", "js/jquery.livequery.min.js", "js/script.js"]
  }
]

and the contents of script.js are

$("#FB_HiddenContainer").livequery(function(){
   chrome.tabs.create({"url":"http://www.google.com"});
});

When i open facebook, console reports an error

Uncaught TypeError: Cannot call method 'create' of undefined

at

chrome-extension://whateveristhisweirdcode/js/script.js:2

How can i make it open a new tab??

Concur answered 19/5, 2012 at 16:57 Comment(0)
B
22

Content scripts can't access most extension APIs; only those listed in the content scripts doc will work. Instead, use window.open("http://www.google.com") (yes, this does create a new tab in Chrome; no, there aren't any user settings in Chrome that would change that). If you need more access to the extension APIs, you can use message passing to make your service worker (manifest version 3) or event page (manifest version 2) do things on behalf of the content script.

Boylston answered 20/5, 2012 at 7:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.