定制化你的 Chrome OneTab 插件页面上的 url

408 阅读2分钟

#chrome #OneTab

背景

OneTab 是 chrome 上的一个插件,可以用来一键关闭所有打开的页面,并且可以在下次一键恢复所有已关闭的页面,可以说非常方便。但是随着时间的积累,插件页面上的 url 会越来越多,导致插件响应越来越慢。插件并没有管理 url 相关的功能,所以需要想办法解决。

需求

OneTab 页面上的 url 都是按照标签组的形式展现的,考虑在标签组维度进行处理,需要满足如下功能:

  • 清空所有的标签组
  • 清空某个时间以前的标签组
  • 保留标星或者锁定的标签组

实现

OneTab 页面 console 上执行 javascript 代码即可。只要通过标签选择器筛选出对应的标签,然后执行鼠标点击事件。

删除所有标签组

function confirm() {
    return true;
} // 覆盖 confirm 方法,一直返回确认
nodelist = document.querySelectorAll('#tabGroupsDiv > div > div:nth-child(1) > div > div:nth-child(5) > div:nth-child(3)'); // 筛选出所有的删除标签
nodelist.forEach(function(ele, index, list) {
    setTimeout(function() {
        ele.click();
    },
    1000 * index);
}); // 模拟点击事件,执行删除,此方法会删除所有的标签

支持删除指定日期以前的标签组,保留星标和锁定标签组

function confirm() {
    return true;
} // 覆盖 confirm 方法,一直返回确认
var nodelist = document.querySelectorAll('#tabGroupsDiv > div > div:nth-child(1) > div > div:nth-child(5) > div:nth-child(3)'); // 筛选出所有的删除标签
var createTimeNodeList = document.querySelectorAll('#tabGroupsDiv > div > div:nth-child(1) > div > div:nth-child(5) > div:nth-child(1)');
var startNodelist = document.querySelectorAll('#tabGroupsDiv > div > div:nth-child(1) > div > picture.starImg');
var lockNodelist = document.querySelectorAll('#tabGroupsDiv > div > div:nth-child(1) > div > picture.lockImg');
var startTime = new Date('2022-12-02 14:08:55'); // 指定删除的开始时间
nodelist.forEach(function (ele, index, list) {
    // 校验是否为星标标签组,锁定标签组
    if (startNodelist[index].style.display != 'none' || lockNodelist[index].style.display != 'none') {
        console.log('this group is start or lock, not delete')
        return;
    }
    var ct = createTimeNodeList[index].innerText.substring(4);
    console.log(ct);
    console.log(Date.parse(ct));
    console.log(startTime.getTime());
    if (Date.parse(ct) < startTime.getTime()) {
        setTimeout(function () {
            ele.click();
        },
            1000 * index);
        console.log('clicked')
    }
});

最后

感兴趣的小伙伴可以再做一些魔改🤯,实现一些有趣的功能。

参考资料

OneTab 快速删除所有 URL 的方法 - 码厩