Chrome 扩展和选择文本。如何创建一个选项卡并重复更新同一选项卡

发布于 2025-01-08 00:56:30 字数 953 浏览 0 评论 0原文

我遇到了问题我正在尝试扩展 建造。

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

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

我创建了一个上下文菜单项,用户选择该项目来获取翻译,调用翻译函数。

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 选项卡?

任何想法都非常感激。 此致 哈尔

I´m having trouble with an extension I´m trying to build.

The thing is that I want to allow a user to highlight a word in some tab and get a translation of that word in another window by calling a Translator web page.

The part I have so far and works, is roughly as follows:

I created a context menu item which user selects to get the translation, calling a translate function.

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

In the translate function I create window and send over the selected word.

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

The question is: How do I update the newly created window? e.g. If I want to translate another word.

Do I fetch all windows or tabs and check if the part of the url holds the value

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

or do i update LastFocused tab?

Any ideas greatly appreciated.
Best regards
Hal

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

开始看清了 2025-01-15 00:56:30

您可以将选项卡的 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 });

You can store the tabId of the tab in the new window you created for easy access.

chrome.windows.create() passes a Window object to the callback function. Among other things, this object contains an array of the tabs in it. Since you have just created this window, it will only have one tab. So:

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

When you want to modify this tab again, use chrome.tabs.update():

chrome.tabs.update(theTab, { url: 'http://www.TranslatingPage.com/index.asp?Translateword=' + info.selectionText });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文