您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Позволяет скрывать объявления на сайте avito.ru
// ==UserScript== // @name AvitoTool // @version 0.0.3 // @description Позволяет скрывать объявления на сайте avito.ru // @author pp // @include https://www.avito.ru/* // @grant none // @namespace https://greasyfork.org/users/814032 // ==/UserScript== (function() { 'use strict'; var AvitoTool = { verbose: false, name: 'AvitoTool', keyHash: 'avitotool:hidden:elements', getHiddenElements: function() { return JSON.parse(localStorage.getItem(AvitoTool.keyHash)); }, setHiddenElements: function(arr, id) { AvitoTool.log('added new hidden element: ' + id); return localStorage.setItem(AvitoTool.keyHash, JSON.stringify(arr)); }, addHiddenElement: function(id) { var hiddenElementsArr = this.getHiddenElements(); if (hiddenElementsArr !== null && hiddenElementsArr.length > 0) { hiddenElementsArr.push(id); } else { hiddenElementsArr = [id]; } this.setHiddenElements(hiddenElementsArr, id); }, addHideButton: function() { document.querySelectorAll('div[class^="items-items"] > div[data-marker^="item"]').forEach(function (item, index) { var hideButton = '<div class="item-hide"><button type="button" class="hide-button-' + item.dataset.itemId + ' button-button-eBrUW button-button-CmK9a button-size-s-r9SeD button-default-_Uj_C" aria-busy="false"><span class="button-textBox-_SF60"><div class="button-button__text_wrapper-AHKCO"><span class="text-text-LurtD text-size-s-BxGpL">Скрыть объявление</span></div></span></button></div>'; item.querySelector('div[class^="iva-item-actions"]').innerHTML += hideButton; document.querySelector('button.hide-button-' + item.dataset.itemId).addEventListener("click", function(e){ var hiddenElementsArr = AvitoTool.getHiddenElements(); if (hiddenElementsArr != null && !hiddenElementsArr.includes(item.dataset.itemId)) { AvitoTool.addHiddenElement(item.dataset.itemId); } else if (hiddenElementsArr == null) { AvitoTool.addHiddenElement(item.dataset.itemId); } else { AvitoTool.log('element id: ' + item.dataset.itemId + ' already added'); } AvitoTool.hideByItemId(item.dataset.itemId); e.preventDefault(); }); }); }, hideByItemId: function(id) { var hideElem = document.querySelector('div[data-item-id="' + id + '"]'); if (hideElem != null) hideElem.style.display = 'none'; }, hideElements: function() { var hiddenElementsArr = this.getHiddenElements(); if (hiddenElementsArr != null) { hiddenElementsArr.forEach(function(itemId, index) { AvitoTool.hideByItemId(itemId); }); } }, loaded: function() { AvitoTool.log("loaded"); }, run: function() { document.onreadystatechange = function () { if (document.readyState == "complete") { AvitoTool.addHideButton(); AvitoTool.loaded(); } } AvitoTool.hideElements(); }, log: function(o) { if (AvitoTool.verbose) { console.log(AvitoTool.name + ' >> ' + o); } } }; AvitoTool.run(); })();