Расширение Chrome и выбор текста.Как создать вкладку и регулярно обновлять эту же вкладку - PullRequest
3 голосов
/ 22 февраля 2012

У меня проблемы с расширением, которое я пытаюсь создать.

Дело в том, что я хочучтобы позволить пользователю выделить слово в одной вкладке и получить перевод этого слова в другом окне, вызвав веб-страницу переводчика.

Часть, которая у меня есть и работает, примерно такова:

Я создал пункт контекстного меню, который пользователь выбирает для получения перевода, вызывая функцию перевода.

chrome.contextMenus.create({
    title: 'Translate',
    contexts: [context],
    onclick: translate
}); 

В функции перевода я создаю окно и отправляю выбранное слово.

chrome.windows.create({
    url: 'http://www.TranslatingPage.com/index.asp?Translateword=' + info.selectionText
});

Вопрос в том, как мне обновить только что созданное окно?например, если я хочу перевести другое слово.

Должен ли я выбрать все окна или вкладки и проверить, содержит ли часть URL-адреса значение

'http://www.TranslateExamplePage.com/index.asp?Translateword='

или обновить вкладку LastFocused?

Любые идеи с благодарностью.С наилучшими пожеланиями Hal

1 Ответ

2 голосов
/ 22 февраля 2012

Вы можете сохранить tabId вкладки в новом окне, которое вы создали для легкого доступа.

chrome.windows.create() передает объект Windowк функции обратного вызова.Помимо прочего, этот объект содержит массив вкладок в нем.Поскольку вы только что создали это окно, оно будет иметь только одну вкладку.Итак:

var theTab;
chrome.windows.create({ url: 'http://www.TranslatingPage.com/index.asp?Translateword=' + info.selectionText }, function(window) {
    theTab = window.tabs[0]
});

Если вы хотите снова изменить эту вкладку, используйте chrome.tabs.update():

chrome.tabs.update(theTab, { url: 'http://www.TranslatingPage.com/index.asp?Translateword=' + info.selectionText });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...