【问题标题】:Count the number of windows open计算打开的窗口数量
【发布时间】:2010-11-11 18:22:47
【问题描述】:

我正在尝试使用 javascript 计算在我的 google chrome 浏览器中打开的选项卡的数量。有谁知道如何做到这一点?

我写了一些我想重复 10 次然后停止的 javascript。完成 1 次迭代后,我使用以下命令打开一个新窗口:

window.open("http://www.test.com");

我想这样做 10 次而不是停止。也许有比我想的更好的方法……

【问题讨论】:

  • 您是在编写扩展程序还是只是在页面上编写代码?
  • 是的,我正在写一个谷歌浏览器扩展

标签: javascript google-chrome count window.open


【解决方案1】:

网页被沙盒化是一件好事,这样其他网站就无法访问它们。如果它们是您使用 window.open 打开的窗口,您可以将收到的引用保存到窗口中:

var win = window.open(url);

当然,如果您打开大量窗口,您可以将其推送到数组中。

var wins = [];
//looping stuff here
wins.push(window.open(url[i]);

【讨论】:

    【解决方案2】:

    我认为循环很好,但如果你想跟踪,

    var winList = new Array();
    var count = 10;
    
    for(var i=0; i < count; i++){
        winList[i] = window.open("http://www.test.com");
    }
    

    这样,您可以保留对窗口的引用。

    【讨论】:

      【解决方案3】:

      所以我想不出一种方法来做我想做的事,所以我采取了不同的方法。我说,让我们看看谷歌是否可以在 chrome 中选择限制打开的标签数量,我发现有人写了一个扩展来做到这一点。我不知道他是怎么做到的,但它确实有效。 Controlled multi-tab browsing

      【讨论】:

        【解决方案4】:

        查看Google Chrome Extensions Developer Guide ,尤其是Tabs 页面和getAllInWindow 函数

        chrome.tabs.getAllInWindow(integer windowId, function callback)
        

        回调函数接收标签数组的地方。这意味着你可以得到它的长度。

        如果您要跟踪的选项卡可能位于不同的窗口中,那么您需要查看Windows 页面和getAll 函数

        chrome.windows.getAll(object getInfo, function callback)
        

        使用它来遍历所有窗口并调用getAllInWindow。一切就绪。

        【讨论】:

        • 我认为 api (chrome.tabs.getAllInWindow) 已被弃用。我使用这种更简单的方法:chrome.window.tabs.length;
        【解决方案5】:

        如果您只想打开十个标签:

        var i;
        for (i = 0; i < 10; i++) {
            window.open("http://www.test.com");
        }
        

        但是不,我不相信您可以计算打开的标签的数量,因为这可能会向网站披露您可能不希望他们知道的信息。 (您是否希望您访问的随机网站知道您打开了多少个标签?)

        【讨论】:

        • 不是我要找的,
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        • 2020-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多