7

Я хочу удалить большое количество определенных элементов из истории Chrome.

Я могу выполнить поиск по своему термину, но затем мне нужно установить много флажков, чтобы удалить все элементы. Есть ли способ сделать этот процесс быстрее?

4 ответа4

9

Вы также можете Shift+клик, чтобы выбрать несколько элементов в истории и удалить их одновременно.

Это работает с Chrome версии 33 и, возможно, более ранних версий.

  1. Выполните поиск, чтобы вызвать соответствующие элементы истории
  2. Нажмите на первый результат
  3. Shift+клик по последнему результату
  4. Нажмите Удалить выбранные элементы
9
  1. Выполните поиск, чтобы вызвать элементы, которые вы хотите удалить историю.

  2. Откройте консоль инструментов разработчика Chrome, нажав Ctrl+Shift+J.

  3. Убедитесь, что в качестве целевого кадра для консоли выбран кадр истории.

  4. Выполните следующий фрагмент в консоли (вставив его и нажав Enter), чтобы отметить все флажки в истории.

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

    Не забудьте перепроверить выбор и снять отметки с предметов, которые вы на самом деле не хотите удалять!

  5. Очистите выбранные элементы из своей истории, нажав Удалить выбранные элементы.

3

Вот что я написал в JavaScript .. Работает через консольный отладчик. Я пытался использовать его в закладке, но не получил ответа со страницы ..

** // ОБНОВЛЕНИЕ (07.28.15)
Я добавил более короткий подход, предложенный @Denis Gorbachev, к настройке флажка, что помогло сократить часть этого кода. Я также добавил функциональность « автостоп », то есть цикл остановится, как только он окончательно очистит список.

** // ОБНОВЛЕНИЕ (08.20.14)
Я сделал несколько изменений в коде, чтобы сделать его более удобным для пользователя. Другие пользователи могут не разбираться в кодах, а другие могут просто предпочесть удобство. Поэтому я нажал пару кнопок (старт / стоп), чтобы контролировать использование; а также устранение некоторых исключений / ошибок "ASSERTION FAILED", которые были выданы при попытке запустить цикл сценария. Наслаждаться!!


Шаг 1) В адресной строке введите следующий адрес для доступа к странице истории. Обычно он загружается в iframe, а левое меню загружается в другой кадр.

chrome://history-frame/

Шаг 2) Загрузите ваш консольный отладчик / просмотрщик, нажав Ctrl+Shift+J
(Для пользователей Mac: ++J)
                Примечание: Вы также можете нажать F12 и выбрать вкладку « Консоль ».

Шаг 3) В Console Debugger/Viewer скопируйте и вставьте следующий код:

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, который проверяет состояние экрана "Загрузка".

Чтобы начать стирать отфильтрованные элементы истории, теперь вы можете нажать зеленую кнопку « Пуск» .

** // ОБНОВЛЕНИЕ (28.07.2015) Теперь оно остановится на СВОЕМ.

Чтобы остановить цикл вручную, теперь вы можете нажать красную кнопку « Стоп» . Просто как тот!

1

Вы можете воспользоваться хакерским ярлыком, вставляющим код JavaScript.

Шаг 1 Поскольку история Chrome запрашивается внутри iFrame, мы должны посетить:chrome://history-frame/ (скопировать и вставить URL)

Шаг 2 Выполните поисковый запрос.

Шаг 3 Откройте консоль Chrome (F12 или CTRL + SHIFT + I или ⌘ ⌥ я) и выполнить:

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 Нажмите кнопку « Удалить выбранные элементы ».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .