我在寫一個Chrome擴展,我想在我的background.js中調用一個函數。如何在background.js中爲Chrome擴展使用自定義函數?
這是函數:
function getUrlVars(url) {
var vars = {};
var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
if(vars[key]){
if(vars[key] instanceof Array)
vars[key].push(value);
else
vars[key] = [vars[key], value];
}else
vars[key] = value;
});
return vars;
}
它返回的URL的參數。 我把這個函數放在background.js中,但是當我調用它時,它不起作用。 我調用該函數在這裏:
chrome.webRequest.onBeforeRequest.addListener(function(details){
chrome.tabs.get(details.tabId, function (tab) {
source=getUrlVars(details.url)[iapisource];
id=getUrlVars(details.url)[iapiid];
redirectUrl=tab.url+"?iapisource="+source+"&iapiid="+id;
});
return {cancel : true , redirectUrl : redirectUrl};
},
// block requests matching this url
{urls: ["*://*/*iapisource*iapiid*"]},["blocking"]);
這裏我把URL請求之前和追加給它的新的URL的參數。
我必須在哪裏放置該功能,以及如何調用它?
回到你叫從background.js頁面內或其他地方在你的擴展,例如,該功能內容腳本或popup.html? – QFDev
在background.js –
您可以包含來自何處的代碼,這可能是問題的一部分嗎? – QFDev