Is it possible to rewrite url (with extra parameters) with a Chrome extension

后端 未结 2 683
长情又很酷
长情又很酷 2021-02-07 21:29

I am trying to append few extra parameters to the url that user typed (before the page gets loaded). Is it possible to do?

For example, if user types www.google.co

2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-02-07 22:24

    The webRequest API might be what you need. This code goes in your background page:

    chrome.webRequest.onBeforeRequest.addListener(
        function(details) {
            if( details.url == "http://www.google.com/" )
                return {redirectUrl: "http://www.google.com/?q=defaultquery" };
        },
        {urls: ["http://www.google.com/*"]},
        ["blocking"]);
    

    This is an extremely specific rule that redirects visits to http://www.google.com/ with http://www.google.com/?q=defaultquery, but I think you can see how to expand it to include more functionality.

    Note that this will reroute all attempts to reach http://www.google.com/, including Ajax requests and iframes.

    Per the documentation, you will need to add the webRequest and webRequestBlocking permissions, along with host permissions for every host you plan to intercept:

    "permissions": [
        "webRequest",
        "webRequestBlocking",
        "*://*.google.com/",
        ...
    ],
    

提交回复
热议问题