Доброго времени суток. У меня наверное самая распространенная проблема, которая только может быть - не работает скрипт.
Дело вот в чем. Очень давно хочу потереть все лайки, поставленные мной в вк, но вручную это проделывать займет кучу времени, так как картинок очень много. Решений в интернете, как это можно сделать быстро, я не нашел, поэтому решил прибегнуть к скрипту. С js никогда не работал, поэтому нашел несколько примеров и использовал конструкции из них, чтобы слепить своего франкенштейна:
*скрипт для страницы vk.com/fave для раздела с картинками*
(function () { 'use strict'; if (!confirm('Удалить все лайки с фотографий?')) return; var photoLink = document.body.querySelectorAll('div.photos_row_wrap > div[id] > a'); for (var i = 0; i < photoLink.length; i++) { photoLink[i].click(); var likeButton = document.body.querySelectorAll('div.like_btns > a[onclick^="Likes.toggle"]'); likeButton[0].click(); } alert(photoLink.length + ' posts deleted'); }());
Вводил все по-отдельности и работало( то есть получал сначала список изображений в photoLink, затем открывал одно изображение через photoLink[0].click(), находил список кнопок с лайком likeButton и снимал лайк с картинки через likeButton[0].click().
Но в функции это все не работает. Выводит ошибку:
VM3047:1 Uncaught TypeError: Cannot read property 'click' of undefined
at <anonymous>:1:348
at <anonymous>:1:404
(anonymous) @ VM3047:1
(anonymous) @ VM3047:1
Я так понимаю, что likeButton не определяется и не определяется из-за того, что окно с фотографией не успевает открыться, а функция уже пытается найти кнопку с лайком на той странице, на которой был вызван скрипт.
Подумав, что дело в этом я пытался ввести какой-нибудь цикл, который будет идти бесконечно, пока не определиться переменная likeButton( отталкиваясь от того предположения, что окно с изображением не успевало открыться и кнопки с лайком просто не было на странице), но тщетно, это тоже не помогло.
Извиняюсь за быдло кодинг, но мне очень хочется решить поставленную задачу. Буду рад любой помощи )