我正在尝试创建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,我需要做些什么?
答案 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