Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I have a link from a Google Chrome extension popup open in the same tab underneath?

I want the link to appear in the tab beneath resulting in the popup going away.

Currently have this:

//Open links in tab from popup
if (document.location.search == '?popup')
$('a').attr('target', '_blank');

But the _blanks opens in a new tab. Any help would be greatly appreciated - thanks!

like image 848
jprim Avatar asked Sep 21 '10 22:09

jprim


1 Answers

You would need to get the current selected tab first via, http://code.google.com/chrome/extensions/tabs.html#method-getSelected

Then you use the tab.id, that the callback has fired, and updating it with a url: http://code.google.com/chrome/extensions/tabs.html#method-update

For example:

chrome.tabs.getSelected({}, function(tab) {
  chrome.tabs.update(tab.id, {url: 'http://google.com'});
});

If you want to let every link in the popup page to update the current tab opened. You can do the following (as you mentioned within the comments but with currentTarget):

$('a').live('click', function(e) {
  var href = e.currentTarget.href;
  chrome.tabs.getSelected(null,function(tab) {
    chrome.tabs.update(tab.id, {url: href});
  });
  window.close(); // To close the popup.
});
like image 88
Mohamed Mansour Avatar answered Oct 03 '22 03:10

Mohamed Mansour