我在尝试构建扩展时遇到问题。
问题是我希望允许用户在某个标签中突出显示某个单词,并通过调用翻译网页在另一个窗口中获取该单词的翻译。
到目前为止我所拥有的部分大致如下:
我创建了一个上下文菜单项,用户选择进行翻译,调用翻译函数。
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
标签?
任何想法都非常感激。 最好的祝福 哈尔
答案 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 });