如何轻松地从 Chrome 历史记录中一次删除多个项目?

如何轻松地从 Chrome 历史记录中一次删除多个项目?

我想从 Chrome 历史记录中删除大量特定项目。

我可以搜索我的术语,但随后我必须单击很多复选框才能删除每个项目。有没有办法让这个过程更快?

答案1

您还可以使用Shift+Click选择历史记录中的多个项目并一次将其删除。

这在 Chrome 版本 33 及更早版本中均可行。

  1. 执行搜索以显示相关历史记录
  2. 单击第一个结果
  3. Shift+Click最后结果
  4. 单击删除所选项目

答案2

  1. 执行搜索以显示您想要删除历史记录的项目。

    在此处输入图片描述

  2. Ctrl+ Shift+打开 Chrome 开发者工具控制台J

  3. 确保选择历史框架帧作为控制台的目标帧。

    在此处输入图片描述

  4. 在控制台中执行以下代码片段(通过粘贴并按下Enter)以标记历史记录中的所有复选框。

    var checkboxes = $$( "input[type='checkbox']" );
    for( var i = 0; i < checkboxes.length; ++i ) {
      checkboxes[ i ].checked = true;
    }
    

    不要忘记仔细检查选择并取消选中您实际上不想删除的项目!

  5. 清除历史记录中选定的项目,方法是按删除所选项目

    在此处输入图片描述

答案3

这是我在 JavaScript 中编写的内容。它通过控制台调试器工作。我尝试在书签中使用它,但没有从页面获得任何响应。

**// 更新(2015 年 7 月 28 日)
我在复选框定位中添加了@Denis Gorbachev 提供的更短方法,这有助于缩短部分代码。我还添加了“自动停止“功能,这意味着一旦循环最终清除列表,它就会停止。

**// 更新 (08.20.14)
我对代码做了一些修改,使其更加用户友好。其他用户可能不懂代码,而其他人可能只是喜欢方便。因此,我制作了几个按钮(启动/停止)来控制使用;以及解决在尝试运行脚本循环时抛出的一些“断言失败”异常/错误。尽情享受吧!


步骤1)在您的地址栏中,输入以下地址以查看历史记录页面的主要内容。它通常在 iframe 中加载,左侧菜单加载在另一个框架中。

chrome://history-frame/

第2步)Ctrl按+ Shift+加载控制台调试器/查看器J
(对于 Mac 用户,+ + J
                注意:您也可以按 F12 并选择“安慰“ 标签。

步骤3)在里面控制台调试器/查看器,复制并粘贴以下代码:

function removeItems() {
removeButton = document.getElementById('remove-selected');
overlayWindow = document.getElementById('overlay');
    //revision (07.28.15): Replaced the For Loop targeting the checkboxes, thanks to Denis Gorbachev via comments (02.19.15)
Array.prototype.forEach.call(document.querySelectorAll("input[type=checkbox]"), function(node) {node.checked = "checked"});
setTimeout(function () {
    if (removeButton.getAttribute("disabled") !== null) {
        removeButton.removeAttribute("disabled")
    }
    /* revision (08.20.14): no longer binding to that condition, button should no longer be disabled, so click! */
    if ((overlayWindow.hasAttribute("hidden")) && (overlayWindow.getAttribute("hidden") !== false)) {
        removeButton.click();
    }
    /* revision (08.20.14): new Interval, to check against the overlay DIV containing the confirmation "Remove" button */
    /* Attempting to click the button while the DIV's "hidden" attribute is in effect will cause FAILED ASSERTION */
    stopButton = setInterval(function () {
        if (overlayWindow.hasAttribute("hidden")) {
            if (overlayWindow.getAttribute("hidden") == "false") {
                hidden = false
            } else {
                hidden = true
            }
        } else {
            hidden = false
        }
        if (!hidden) {
            document.getElementById("alertOverlayOk").click();
            clearInterval(stopButton)
        }
    }, 250)
}, 250)
}
//revision (08.20.14): Lets build our buttons to control this so we no longer need the console
//stop button (08.20.14)
var stopButton = document.createElement('button');
stopButton.setAttribute('id', "stopButton");
stopButton.innerHTML = "Stop";
stopButton.style.background = "#800";
stopButton.style.color = "#fff";
stopButton.style.display = "none";
stopButton.onclick = function () {
    clearInterval(window.clearAllFiltered);
    document.getElementById("stopButton").style.display = "none";
    document.getElementById("startButton").style.display = ""
};
//start button (08.20.14)
var startButton = document.createElement('button');
startButton.setAttribute('id', "startButton");
startButton.innerHTML = "Start";
startButton.style.background = "#090";
startButton.style.color = "#fff";
startButton.onclick = function () {
    window.clearAllFiltered = setInterval(function () {
/* revision (07.28.15): Stop the Loop automatically if there are no more items to remove */
        if(document.getElementById("results-header").innerText=="No search results found."){
            document.getElementById("stopButton").click();
            }
        if (document.getElementById("loading-spinner").getAttribute("hidden") !== null) {
            removeItems()
        }
    }, 250); //adjust Time Here (1500 [millisec] = 1.5sec)
    document.getElementById("stopButton").style.display = "";
    document.getElementById("startButton").style.display = "none"
};
/* revision (08.20.14): Now we add our buttons, and we're ready to go! */
editingControls = document.getElementById('editing-controls');
editingControls.appendChild(stopButton);
editingControls.appendChild(startButton);

此 removeItems 函数将循环选择所有表单输入并选中所有复选框,启用“删除所选项目”按钮并单击它。半秒钟后,它将检查是否显示“您确定吗”提示,如果是,则自动为您单击“是/删除”按钮,以便它将加载新的项目列表以重新执行此过程。

该项目使用变量“clearAllFiltered”进行循环,这是一个 setInterval 循环,用于检查“正在加载”屏幕的状态。

要开始删除过滤的历史记录项,您现在可以单击绿色Start按钮。

**// 更新(2015 年 7 月 28 日)它现在将自行停止。

停止循环手动,现在您可以单击红色Stop按钮。就这么简单!

答案4

你可以走黑客捷径注入 JavaScript 代码

步骤1 由于 Chrome 历史记录是在 iFrame 内查询的,因此我们必须访问: chrome://history-frame/(复制并粘贴网址)

第2步 进行搜索查询。

步骤3 打开 Chrome 控制台(F12CtrlShiftii)并执行:

var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; ++i) {
  if (inputs[i].type == "checkbox"){
    inputs[i].checked = true;
  }
}
document.getElementById("remove-selected").disabled = false

步骤4 打 '删除所选项目' 按钮。

相关内容