Search code examples
javascriptjqueryjsongoogle-chrome-extension

Open new tab in Chrome extensions


I'm trying to write a simple google extension that will upon clicking "ctrl+alt+x" search for the selected text in google.

This is my mainfest:

{
  "name": "A jQuery Chrome extension",
  "version": "0.1",
  "description": "Use jQuery to build Chrome extensions",
  "content_scripts": [
    {
        "matches" : ["http://*/*"],
      "js": ["jquery.js", "jquery.hotkeys.js", "content.js"]
    }
  ],
  "background_page": "background.html",
  "permissions": [
    "tabs"
  ]
}

And this is my content.js:

$(document).bind('keydown', 'alt+ctrl+x', function() {

    var selectedText = window.getSelection().toString();

    if (selectedText)
    {
        var googleQuery = "http://www.google.com/search?q=" + selectedText;
        alert(googleQuery);
        chrome.tabs.create({"url" : googleQuery});  
        alert(googleQuery);
    }
});

The code works until the line for opening a new tab (the first alert pops up but not the second). I just can't seem to get it working. What am I missing?


Solution

  • According to the Google Chrome Tabs reference, chrome.tabs (and everything but chrome.extension) is not available to content scripts.

    As an alternative, you could try window.open(), or use message passing to let your background page to open the tab.