javascript 打开一个新窗口,在选项卡中显示新站点

qnzebej0  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(126)

我有一个Chorme扩展,我需要创建一个按钮,打开一些谷歌搜索。由于谷歌限制搜索32个关键字,所以我需要创建几个链接,例如:

https://www.google.com.br/search?q=test
https://www.google.com.br/search?q=test2
https://www.google.com.br/search?q=test3

当我点击按钮,我需要它打开一个新的窗口(chrome.windows.create)与第一个链接。已经第二和第三个链接与标签打开,但在同一个新窗口。
如果我把所有的东西都放在windows.create里,所有的东西都会在不同的窗口里打开,这不是我想要的。如果我把2和3放在搜索里(chrome.tabs.create),它会在一个新窗口中打开1个链接,在2个标签页中打开2个链接,但从活动窗口中,这也不是我想要的。我希望所有的东西都在一个新窗口中打开,在这个新窗口的标签中添加其他链接。有人能帮我吗?谢谢。

3npbholx

3npbholx1#

您可以使用chrome.tabs.create方法在新窗口中打开第一个链接,并将“active“属性设置为true,这将使新标签成为新窗口中的活动标签。你可以使用一个循环来打开同一个窗口中新标签页的剩余链接,方法是将新窗口的窗口ID作为chrome.tab中的“windowId“属性传递。为其余链接创建方法。

chrome.windows.create({
    url: "https://www.google.com.br/search?q=test",
    focused: true
}, function(newWindow) {
    chrome.tabs.create({
        url: "https://www.google.com.br/search?q=test2",
        windowId: newWindow.id
    });
    chrome.tabs.create({
        url: "https://www.google.com.br/search?q=test3",
        windowId: newWindow.id
    });
});

您可以将此脚本用作函数,并在单击按钮时调用它。

aiazj4mn

aiazj4mn2#

工作很完美。我试着用数组来改进代码,现在它也打开了,工作很好,但是新窗口的第一个标签页是空白的,其他标签页加载正确。我做错了什么?

chrome.windows.create({focused: true, }, function(win) {
     var links = [('https://www.google.com.br/search?q=' + 'inurl%3A' + estado + buscaalteracoes5 + dias ),
     ('https://www.google.com.br/search?q=' + 'inurl%3A' + estado + buscainterditado1 + dias ),
    ('https://www.google.com.br/search?q=' + 'site%3Afacebook.com+inurl%3Aposts+inanchor%3A' + estado +
 buscainterditado1 + dias ),
     ('https://www.google.com.br/search?q=' + 'site%3Afacebook.com+inurl%3Aposts+inanchor%3A' + estado +
buscapavimentacoes1 + dias ), ];
     for (var i = 0; i < links.length; i++) {
       array = links[i];
       chrome.tabs.create({ 
           url: array, 
           windowId: win.id,
           selected: true
       })
     } });

相关问题