Chrome扩展程序和selectionText。如何创建选项卡并重复更新相同的选项卡

时间:2012-02-22 01:46:46

标签: google-chrome-extension

我在尝试构建扩展时遇到问题。

问题是我希望允许用户在某个标签中突出显示某个单词,并通过调用翻译网页在另一个窗口中获取该单词的翻译。

到目前为止我所拥有的部分大致如下:

我创建了一个上下文菜单项,用户选择进行翻译,调用翻译函数。

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

在翻译功能中,我创建窗口并发送选定的单词。

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

问题是:如何更新新创建的窗口?例如如果我想翻译另一个词。

我是否获取所有窗口或标签,并检查网址的部分是否包含值

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

或更新LastFocused标签?

任何想法都非常感激。 最好的祝福 哈尔

1 个答案:

答案 0 :(得分:2)

您可以在创建的新窗口中存储选项卡的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 });