How to modify current url location in chrome via extensions

后端 未结 3 1699
春和景丽
春和景丽 2020-12-04 11:43

I want to create an extension that redirects the user to another website if he clicks on the extension button. So far I have only seen extensions which create a new tab for

相关标签:
3条回答
  • 2020-12-04 11:47

    You can use chrome.tabs.query too

    chrome.tabs.query({currentWindow: true, active: true}, function (tab) {
          chrome.tabs.update(tab.id, {url: your_new_url});
    });
    
    0 讨论(0)
  • 2020-12-04 12:05

    The chrome.tabs.update method will automatically run on the current active tab if no tab id is passed.

    This has the added advantage of not requiring the tabs permission. Extensions with this permission warn the user that they can read the browsing history, so you should avoid asking for it if you don't need to.

    Changing the current tab's URL is as simple as writing this:

    chrome.tabs.update(undefined, {url: 'http://example.com'});
    

    Or as mentionned by farwayer in the comments, you don't need to put two arguments at all.

    chrome.tabs.update({url: 'http://example.com'});
    
    0 讨论(0)
  • 2020-12-04 12:07

    Attention: If you develop cross-browser extensions (I hope you do!), I recommend that you use chrome.tabs.query(). Please see Jean-Marc Amon's answer for more information. This answer still works in both Firefox and Chrome, but query() is more commonly used, has more options, and works in background pages and popup views.

    From the chrome.tabs API, you can use getCurrent() or query().

    I prefer getCurrent but it cannot be called from a non-tab context (eg a background page or popup view). If this is a problem for you, you should look to use query instead. Jean-Marc Amon's answer below provides a wonderful example of how to get the active tab in this case (don't forget to upvote him!).

    Once you have the current tab, simply pass update().

    chrome.tabs.getCurrent(function (tab) {
      //Your code below...
      var tabUrl = encodeURIComponent(tab.url);
      var tabTitle = encodeURIComponent(tab.title);
      var myNewUrl = "https://www.mipanga.com/Content/Submit?url=" + tabUrl + "&title=" + tabTitle;
    
      //Update the url here.
      chrome.tabs.update(tab.id, {url: myNewUrl});
    });
    

    NB: In order to use this this functionality, you must ensure that you have the tabs permission enabled in your manifest.json file:

    "permissions": [
      "tabs"
    ],
    
    0 讨论(0)
提交回复
热议问题