Chrome 使用参数重定向到 URL 的扩展
Chrome Extension to Redirect to URL with Parameter
我正在尝试创建一个 Chrome 扩展,如果 URL 匹配给定模式(*://*.mydomain.com/s/*
,它将在 URL 的末尾添加一个参数).下面是我拥有的清单文件和后台脚本,但我无法使其正常工作。我做错了什么?
manifest.json:
{
"manifest_version": 2,
"name": "Search Grid View",
"version": "0.1",
"description": "Changes MyDomain.com search to grid view by default",
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs",
"webRequest",
"*://*.mydomain.com/s/*",
"webRequestBlocking"
]
}
background.js:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
var currentUrl = tabs[0].url;
var newUrl = currentUrl + "&style=gridview"
return { redirectUrl: newUrl};
},
{
urls: [
'*://*.mydomain.com/s/*'
],
types: ['main_frame']
},
['blocking']);
提前感谢您的任何建议!
- 使用调试器 - 在 chrome://extensions 页面上单击您的扩展程序的
background page
,然后切换到 Sources
面板。
- 获取url使用onBeforeRequest的回调参数
- 检查 url 是否已经修改。
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {
redirectUrl: details.url +
(details.url.indexOf("?") == -1 ? "?" : "") +
(details.url.indexOf("&style=gridview") == -1 ? "&style=gridview" : "")
};
},
{urls: ['*://*.mydomain.com/s/*'], types: ['main_frame']},
['blocking']
);
我正在尝试创建一个 Chrome 扩展,如果 URL 匹配给定模式(*://*.mydomain.com/s/*
,它将在 URL 的末尾添加一个参数).下面是我拥有的清单文件和后台脚本,但我无法使其正常工作。我做错了什么?
manifest.json:
{
"manifest_version": 2,
"name": "Search Grid View",
"version": "0.1",
"description": "Changes MyDomain.com search to grid view by default",
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs",
"webRequest",
"*://*.mydomain.com/s/*",
"webRequestBlocking"
]
}
background.js:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
var currentUrl = tabs[0].url;
var newUrl = currentUrl + "&style=gridview"
return { redirectUrl: newUrl};
},
{
urls: [
'*://*.mydomain.com/s/*'
],
types: ['main_frame']
},
['blocking']);
提前感谢您的任何建议!
- 使用调试器 - 在 chrome://extensions 页面上单击您的扩展程序的
background page
,然后切换到Sources
面板。 - 获取url使用onBeforeRequest的回调参数
- 检查 url 是否已经修改。
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {
redirectUrl: details.url +
(details.url.indexOf("?") == -1 ? "?" : "") +
(details.url.indexOf("&style=gridview") == -1 ? "&style=gridview" : "")
};
},
{urls: ['*://*.mydomain.com/s/*'], types: ['main_frame']},
['blocking']
);