我必须使用铬扩展更新一个url。这里是我的清单文件
{
"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');它没有更新URL
发布于 2011-02-08 18:30:57
我可以看到几个问题:您不能在内容脚本中访问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 });
});https://stackoverflow.com/questions/4935883
复制相似问题