开发Google Chrome扩展程序

时间:2011-02-08 16:55:22

标签: javascript json

我必须使用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不更新网址

1 个答案:

答案 0 :(得分:1)

我可以看到一些问题:您无法在内容脚本中访问chrome.tabschrome.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 });
});