首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发Google扩展程序

开发Google扩展程序
EN

Stack Overflow用户
提问于 2011-02-08 16:55:22
回答 1查看 348关注 0票数 0

我必须使用铬扩展更新一个url。这里是我的清单文件

代码语言:javascript
复制
{
    "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)

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-08 18:30:57

我可以看到几个问题:您不能在内容脚本中访问chrome.tabs,而chrome.tabs.getSelected需要“选项卡”权限。

但是,设置window.location应该在内容脚本中工作,所以如果只需要这样做,myscripts.js就可以很简单:

代码语言:javascript
复制
window.location = 'http://www.google.co.in/#hl=en&biw=1920...';

如果您确实需要使用chrome.tabs.update,您可以从后台页面访问它。基本上,您需要在后台页面中设置一个onRequest事件处理程序,并使用内容脚本使用chrome.extension.sendRequest发送请求。

因此,基本上您的内容脚本(myscript.js)需要这样的内容:

代码语言:javascript
复制
chrome.extension.sendRequest({ url: 'http://www.google.co.in/#hl=en...' });

您的背景页面将有一个脚本元素,如下所示:

代码语言:javascript
复制
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    chrome.tabs.update(sender.tab.id, { url: request.url });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4935883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档