我必须使用chrome扩展程序更新网址。 这是我的清单文件
{
"name": "My First Extension",
"version": "1.0",
"description": "The first extension that I made.",
"browser_action": {
"default_icon": "cwins.png"
},
"permissions": [
"http://www.google.co.in/",
"http://www.google.co.in/#hl=en&biw=1920&bih=955&q=anushka&aq=f&aqi=g10&aql=&oq=&fp=5f42a1c1d2fc35ec"
],
"content_scripts": [
{
"matches": ["http://www.google.co.in/"],
"js": ["jquery.js", "myscript.js"]
}
]
}
这是我的content_scripts(myscripts.js)
alert('hi');
chrome.tabs.getSelected({}, function(tab) {
chrome.tabs.update(tab.id, {
url: 'http://www.google.co.in/#hl=en&biw=1920&bih=955&q=anushka&aq=f&aqi=g10&aql=&oq=&fp=5f42a1c1d2fc35ec'
});
});
alert('bye');
ITS不更新网址
答案 0 :(得分:1)
我可以看到一些问题:您无法在内容脚本中访问chrome.tabs
,chrome.tabs.getSelected
需要“标签”权限。
设置window.location
应该在内容脚本中工作,所以如果你需要做的就是这样,myscripts.js就像这样简单:
window.location = 'http://www.google.co.in/#hl=en&biw=1920...';
如果您确实需要使用chrome.tabs.update
,则可以从后台页面访问它。基本上,您需要在后台页面中设置onRequest
事件处理程序,并使用内容脚本中的chrome.extension.sendRequest
发送请求。
所以基本上你的内容脚本(myscript.js)就是这样的:
chrome.extension.sendRequest({ url: 'http://www.google.co.in/#hl=en...' });
并且您的背景页面将包含以下内容的脚本元素:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
chrome.tabs.update(sender.tab.id, { url: request.url });
});