Разработайте расширение для Google Chrome - PullRequest
0 голосов
/ 08 февраля 2011

Я должен обновить URL, используя расширение 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');

НЕ ОБНОВЛЯЕТ URL

1 Ответ

1 голос
/ 08 февраля 2011

Я вижу пару проблем: вы не можете получить доступ к 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 });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...