Google Chrome. Удаление из истории браузера одного сайта
В истории Google Chrome можно почистить либо всё записи, либо удалять по одной. А их может быть очень много. Попробуем восполнить этот пробел небольшим Javascript хаком, который будет отмечать все чекбоксы у нужных записей.
Открываем страницу истории в браузере: Настройка -> История или Ctrl + H.
Вписываем в поиск название нужного домена.
Далее открываем консоль в браузере комбинацией Ctrl + Shift + J.
В консоли, вверху, находим <top frame>, жмем на него, и из выпадающего списка выбираем history-frame/.
Вставляем код в консоль Google Chrome и жмем Enter(Chrome попросит подтвердить свои действия).
var rows = $x('//*[@id="results-display"]/ol/li/div/label'), remove_button = $x('//*[@id="remove-selected"]')[0]; for(row in rows){ rows[row].childNodes[0].checked = true; } remove_button.disabled = false; remove_button.click();
Проводим последнюю итерацию до тех пор, пока не удаляться все записи.
35 комментариев
отличный совет! небольшое дополнение. добавив внизу строчку var RESULTS_PER_PAGE = 150; и изменив значение 150 на большее, можно увеличить количество отображаемых результатов поиска
вместо /ol/li/div/label нужно написать /ol/li/div/div немного изменилась вёрстка
Народ, а можно удалять, как-то историю одного сайта автоматом? - а то я уже замучался всякими приемами (автокликеры) и т.д., хотелось бы простой и действенный способ. Тупо, чтоб по линку удалило из истории историю одного сайта (и всех сопутсвующих по доменому имени).
Можно, если нажать на кнопку «Вкл. Мозги»
ггггг - пробовал - не включается))
я не программист. Пробовал и данный метод, указанный, как тут, и добавлял количество записей не 150... А 1500. Долго открывается (видимо либо браузер тупит или с серверов гугля еще инфа тянется). Хотя смотрел на самих серверах гугля - вроде бы и не такая длинная история 4500 записей всего лишь.
Могу еще посоветовать это: https://my-chrome.ru/2012/05/kak-udalit-sinxronizirovannye-dannye-iz-akkaunta-google/
У меня в истории генерируется по 2...3 записи в секунду с одного сайта. Каждый раз входить в анонимный режим, чтоб этого не происходило, как-то напряжно, иногда забываю-забиваю.
Шарился в различных настройках гугля - массу вопросов интересующих меня не нашел. Только частичные "решения".
Могу еще посоветовать - такое о хроме.
https://elims.org.ua/blog/sovety-po-ispolzovaniyu-google-chrome/
но я думаю программеры и так все про это знают.
Надо продолжать нажимать, пока не произойдет "Щелк". P.S.: И постараться перечитать заметку, а также обратить внимание на комментарии товарища "CoopeR"
Вот скриншот все, поясняющий:
http://clip2net.com/s/3COApUa
я надеюсь ты не думаешь, что я такой тупой... естественно, у меня получилось, как в статье... я ж сказал... другое - "внимательней" читай мой коммент. - 2...3 записи в секунду...просто умножь на 60 секунд и получаешь от 120 до 180 (и более) записей в минуту... попробуй удали :))
при этом учти - что у меня еще работает синхронизация с гугль... мой жесткий (довольно медленный) буквально разрывается от моей работы за компом:))...какие уже только методы я не применял, пока желаемого результата не достиг.
Хорошо, продолжим, "нажимать на кнопку". Быть может получится, немного автоматизировать процесс удаления, переписав код, как на скриншоте ниже:
http://clip2net.com/s/3CODSXG
Затем в консоли нажимаете просто ff(); на исполнение
Что, собственно добавлено? Код обернут в функцию ff(), она рекурсивно вызывается через таймер, который вы сможете регулировать. В примере задал 30 сек. У меня в автоматическом режиме пошли удаляться все записи имеющие отношение к сайту vk.com
Переписанный код:
var ff = function(){ $x = $x; var rows = $x('//[@id="results-display"]/ol/li/div/div'), remove_button = $x('//[@id="remove-selected"]')[0], remove_ok = $x('//*[@id="alertOverlayOk"]')[0];
for(row in rows){ rows[row].childNodes[0].checked = true; }
remove_button.disabled = false; remove_button.click(); remove_ok.click(); setTimeout(function(){ff();},30000); }
Это временное решение, составленное сейчас на коленке, периодически надо посматривать в консоль, могут появляться ошибки, но пока у меня хром открыт и идет все автоматом
https://jsfiddle.net/dnw71pvk/
Лучше здесь выложу ;)
спасибооооо ;).
я ж говорил - я совсем не программист. Пытался когда-то учиться, но до сих пор для меня программирование - это дебри. У программистов какое-то особое мышление часто. Особенно у людей, которые долго этим занимаются - у них это проявляется даже в простой жизни они начинают мыслить некоторыми компьютерными алгоритмами. Мне до сих пор не понятны например на Ди - или Си - понятия классы и т.д., и самое главное, как и куда это можно применить и как связать. Я больше простой пользователь который не против простых и понятных решений. Вообще, даже открыть эту панельку нажав Ctrl+Shift+I - для некоторых непосильная задача :). Кста чем славятся славянские программеры - это именно алгоритмами. Мы ищем лазейки всякие и пути... мыслим иерархически. У других этого нет. У них часто нет ("а вот если попробовать вот так (и фиг его знает, что получиться)").
У меня код не работает :(...
пишет "undefined"
во первых в том примере - который вы указали - во второй строчке вероятней всего должны стоять точка с запятой, а не просто запятая (хотя хз)...
Андрей, откройте ссылку: https://jsfiddle.net/dnw71pvk/
Скопируйте код: вот скрин - http://clip2net.com/s/3COStLm
Измените там 30 сек (30000), на 1000 или 500, (я взял слишком много) и выполните в консоли. На ошибки не обращайте внимание.
Вот опять скрин: http://clip2net.com/s/3COSQaK
P.S.: Что я говорил про кнопку? :)
пробовал - историю вообще после экспериментов заглючило и я хз - в чем проблема)
разглючит, посмотрим)).. но за труды спс (кнопка работает))... в качестве предупреждения пишет теперь:
Regex
Hide network messages All Errors Warnings Info Logs Debug Handled /deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.
не работает... еще раз попробовал...
хотя код в принципе прочитал... вы добавили элементарный клин по счетчику на кнопку ок (которая у меня высвечивается "удалить"). может кнопка по другому называется... ща попробую...
кажись нашел ошибку - в процессе выбора кнопки - alertOverlayOk - мы не выбираем меню само типа: $x('//*[@id="results-display"]/ol/li/div/div'),(а я его найти не могу)- это маленькое по срединке - потому и не работает... нужно на него как-то выйти, а уже потом нажимать кнопку.
нашел - называется: alertOverlayMessage
Вот ведь как интересно разговор идет. В самом начале нашей с вами высокоинтеллектуальной беседы я советовал про одну кнопку. А вы сейчас говорите про другую :))
Инспектор кода хром - замечательная вещь и не зависимо от версии данного браузера, покажет вам правильный путь. А заодно и поможет со всеми на свете кнопками!
это тот, который елементс? :)) один фиг - ковыряю - почему-то не работает)).. я ж не знаю, что я вообще делаю)))
еще кучу разных вариантов перепробовал - не получается... как забить название окна alertOverlayMessage, чтоб срабатывала кнопка alertOverlayOk - она поидее не срабатывает.
Ок. Постараюсь помочь чем смогу, тем более что вы пытаетесь разобраться во всем сами :) Может быть мне для этого даже придется и текст заметки более подробно рассмотреть
Скриншот № 1
Еще раз продублирую код:
заходим в хром, открываем историю (CTRL+H), забиваем адрес, ищем совпадения: Скриншот № 2
открываем консоль (Ctrl + Shift + J), переключаемся на консоль и обязательно выбираем history(history-frame/) Скриншот № 3
вставляем код, в этот момент интерпретатор js сохранит его к себе и создаст функцию ff(), после чего мы вызываем его: Скриншот № 4
после первого выполнения функция мгновенно удалит весь список и тут же запустится сразу, через секунду, попытается удалит список, который не подгрузился, появится ошибка, это нормально, потому что, когда он загрузится она отработает опять (так как идет рекурсия) и так до тех пор пока не удалит все: Скриншот № 5 Скриншот № 6 = тут уже все удалил.
Если что пошло не так..
В таком случае возможно скрипт просто напросто не может найти те элементы, которые мы засовываем в переменные.
У нас всего 3 переменные, они соответственно указывают на: строки: Скриншот № 7
Кнопка удалить = То есть, перекл. на вкладку "elements", рядом с консолью и проверяем чтобы все соответствовало разметке и так каждую переменную: Скриншот № 8
Чтобы проверить кнопку alertOverlayOk, набиваем в консоли следующую переменную: Скриншот № 9 Если выдает кнопку - значит ок;
Эта кнопка появляется в модальном окне (должна появляться), в первоначальном варианте кода заметки, и в рекурсии нажимается автоматом, так что ее даже не видно. Найти можно в разметке так: Скриншот № 10
Если чего то не находит, то надо сверять с кодом разметку и подставлять id-шники правильных элементов и пробовать снова :-)
я наваял сие - но не получается один фиг нифига... я уже запутался :)
И так и сяк (я не знаю, как связать иерархию в новом окне), то есть - там есть название самого окна, Оверлей (класс-оверлей), есть строка видимо - alertOverlay (в хроме она записана, как класс-page), и есть кнопка alertOverlayOk, я уже и простые и сложные способы пробовал.. не получается.. ща еще раз попробую ваш код.
Обратите внимание - всплывающее окно не относится к results-display - оно отдельно... И относится к отдельному скрипту и классу - оверлей. Мой интерпретатор тупо не может найти эту долбанную кнопку. Он не понимает, где она находится и дает мне ответ VM2510:21 Uncaught ReferenceError: a is not defined(…) я пробовал и просто названия и через точку, пытался связать это все. Но я не знаю, как объединить двойную иерархию (два класса). То есть - чтоб ява попытался обратиться сначала к оверлей- потом к Алерт оверлей, и только потом к кнопке - алертОверлейОк...
Ахах, супер! Я уже не знаю куда код выложить :))))
Вот код
Видео даже записал!
тут
тфу бля... нашел почему у меня твой код не работал...то я уже сонный был ночью в гауно. после ff() не ставил ";"
извини, что потратил столько твоего времени из за такой мелочи...
зато почитал учебник яваскрипт)... и даже сам теперь что-то ваять могу :). Все равно спасибо ребят :). Еще бы больше понимать, что в нем (в коде) происходит. Спасибо за терпение))).. правда хотелось бы - какой-то более "здоровый" код :). И почему мой код не работает? он же по сути такой же самый? Верхняя часть, такая же как и у Олега.(П.С. я пробовал и оригинальным адрессом - я имею ввиду @id="results-display". Почему не работал код, без запуска функции? я как-то не привык ее "запускать". Тупо код вставил и забил. Терь еще надо бы прикрутить отстановку процесса.
Это автору паблика спасибо, тем более что для этого у него есть собственный раздел
Здравствуйте! Согласно Вашим стараниям и у меня получилось! Спс огромнейшее!
1) Открываем историю, в строке поиска вводим сайт 2) Выделяем 1-у строку сверху, проматываем историю до самого низа 3) Зажимаем Shift и выделяем последнею строку 4) Удаляем
в истории зажимает ctlr + A и выделаются записи, но нужно матать ниже чтобы другие страницы тоже выделить - потом удаляется и не нужна всякие коды никуда вписывать