使用Google Chrome webRequest API进行简单转发

时间:2012-01-11 23:53:43

标签: google-chrome google-chrome-extension webrequest forwarding

我正在尝试创建Chrome扩展程序,以帮助我了解Chrome的webRequest API,方法是复制this answer所做的内容但没有命名空间的实验部分,因为webRequest不再需要现在在Chrome的主干中。

在我的后台页面中,我有代码:

<!DOCTYPE html>
<html>
  <head>
  <script>
function interceptRequest(request) {
    return { redirectUrl: 'http://www.yahoo.com' }
}
chrome.webRequest.onBeforeRequest.addListener(interceptRequest, { urls: ['*://*.google.com/*'] }, ['blocking']);
  </script>
  </head><body></body>
</html>

在我的清单文件中,我有:

{
  "name": "My Extension",
  "version": "0.1",
  "background_page": "background.html",
  "permissions" : [
     "webRequest",
     "webRequestBlocking",
     "*://*/*"
  ]
}

根据之前提出的问题,当我访问http://www.yahoo.com并加载我的扩展程序时,我应该转发到https://www.google.com,但是https://www.google.com加载时没有任何转发效果。要在Chrome中使用webRequest API将用户从一个URI转发到另一个URI,我需要做些什么?

1 个答案:

答案 0 :(得分:3)

您的网址匹配模式不正确。您只需添加一个尾部斜杠:

{urls: ['https://www.google.com/']}

或者,您可以使用:    '*://www.google.com/'以匹配所有协议'*://www.google.com/*'以匹配域名之外和'*://*.google.com/*'以匹配所有子域,协议和路径等。

请参阅: http://code.google.com/chrome/extensions/trunk/match_patterns.html