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

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

我正在尝试创建一个 Chrome 扩展程序来帮助我理解 Chrome 的 webRequest通过复制 this answer 所做的 API但没有命名空间的实验部分,由于 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>

在我的 list 文件中,我有:
{
  "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 简单地转发到另一个,我需要做什么?

最佳答案

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

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

或者,您可以使用:
'*://www.google.com/' 匹配所有协议(protocol), '*://www.google.com/*' 匹配域以外的内容,以及 '*://*.google.com/*' 匹配所有子域、协议(protocol)和路径等。

看:
http://code.google.com/chrome/extensions/trunk/match_patterns.html

关于google-chrome - 使用 Google Chrome webRequest API 进行简单转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8828429/

相关文章:

c# - HttpClient 的 ReadWriteTimeout 替代方案是什么

.NET 网络爬虫需要测量 Time To First Byte of HttpWebResponse

html - FF 渲染位置相对于所有其他浏览器不同

javascript - 下拉菜单的 onclick 方法在 Chrome 中不起作用?

javascript - jquery - 文档就绪未触发

google-chrome-extension - 仅适用于 Chrome 扩展程序中特定域的后台脚本

javascript - 解析 json 并在弹出窗口中显示图像

google-chrome - Opensearch - 更改搜索引擎的名称

javascript - Chrome Extension webAudio API 停止 Windows 省电模式

c# - HttpWebResponse 在循环运行时卡住