隐藏热搜,删除广告和垃圾元素
// ==UserScript== // @name 百度首页编辑 // @namespace http://tampermonkey.net/ // @version 1.1 // @description 隐藏热搜,删除广告和垃圾元素 // @author 捈荼 // @license Apache License 2.0 // @match https://www.baidu.com // @run-at document-idie // @grant GM_getValue // @grant GM_setValue // ==/UserScript== // Commented by ChatGPT. // Declare an array containing the elements to be toggled var hotSearchElemrnt = [ document.getElementsByClassName("c-font-normal c-color-gray2 hot-refresh")[0], document.getElementsByClassName("s-news-rank-content")[0] ]; // Function to toggle the display style of the elements in the hotSearchElemrnt array function _changeState() { hotSearchElemrnt.forEach((e) => { e.style.display = e.style.display == 'none' ? '' : 'none'; }); } (function () { 'use strict'; // Check if the user has previously decided whether to remove trash elements if (GM_getValue('settingsDoRemoveTrushElements', -1) == -1) { // If not, prompt the user to confirm whether they want to remove trash elements const settingsRemoveTrushElements = confirm('是否需要删除广告等元素?'); // Store the user's decision in local storage GM_setValue('settingsDoRemoveTrushElements', settingsRemoveTrushElements); } // If the user has previously confirmed they want to remove trash elements, or if they just confirmed it if (GM_getValue('settingsDoRemoveTrushElements', -1) == true) { // Declare an object containing the class and id names of trash elements const trushElement = { class: ['s-news-list-wrapper c-container c-feed-box', 's-menu-item current', 'water-container', 's-loading s-opacity-border4-top'], id: ['s_menu_mine', 's-top-left', 'u1', 'bottom_layer', 's_side_wrapper'] }; // Remove all elements with the specified class names trushElement.class.forEach((ele) => { document.getElementsByClassName(ele)[0].remove(); }); // Remove all elements with the specified id names trushElement.id.forEach((id) => { document.getElementById(id).remove(); }); } // Check if the user has previously decided whether to hide hot search if (GM_getValue('settingsDoHideHotSearch', -1) == -1) { // If not, prompt the user to confirm whether they want to hide hot search const settingsRemoveTrushElements = confirm('是否需要隐藏热搜?'); // Store the user's decision in local storage GM_setValue('settingsDoHideHotSearch', settingsRemoveTrushElements); } // If the user has previously confirmed they want to hide hot search, or if they just confirmed it if (GM_getValue('settingsDoHideHotSearch', -1) == true) { // Toggle the display style of the hot search elements _changeState(); // Create a new image element const newIMG = document.createElement('img'); // Set the source of the image to a data URI newIMG.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUBAMAAAD1iJl/AAAAKlBMVEVHcEyRlaORlaORlaKQlaSRlaORlaOSlKSRlaOQlqOQlaKRlaORlaORlaMHlKbCAAAADXRSTlMAM/IhHV1lGVxhHO1ry8GEFgAAAHRJREFUGNNdzbENgCAQheFn7KwIG9DYmdjYG1dwHEvncBdnoL9dRE7wHVSX+79wGE7w63fgiI5XPq64JNCmm+TGJsy8JJX2gVHQ4Ai5v4DHn9WpNvIl0q9fNbc182ntBikwKLPRopeJRZk1qDlXWIuAZS7TA0pEMyTsvCrkAAAAAElFTkSuQmCC'; // Set the alt attribute of the image newIMG.alt = 's-resize'; // Set the width and height of the image newIMG.width = '17'; newIMG.height = '10'; // Set the id of the image newIMG.id = 's-resize-usr-modified'; // Set the inline style of the image newIMG.style = 'margin: 0px 0px 0px 10px'; // Get the parent element of the image const parent = document.getElementsByClassName('c-font-medium c-color-t title-text')[0]; // Remove the child element (arrow icon) from the parent element parent.removeChild(document.getElementsByClassName('c-icon arrow')[0]); // Append the new image to the parent element document.getElementsByClassName('c-font-medium c-color-t title-text')[0].appendChild(newIMG); // Get the hot search toggle link element const keyLink = document.getElementsByClassName('s-opacity-border1-bottom')[0].firstElementChild; keyLink.setAttribute("href", "javascript:;"); keyLink.onclick = () => { // Toggle the display style of the hot search elements _changeState(); // Modify the image const img = document.getElementById('s-resize-usr-modified'); if (img.getAttribute('alt') == 's-resize-1') { img.setAttribute('src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAjBAMAAABm2DcrAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAqUExURUdwTJGVo5GVo5GVopCVpJGVo5GVo5KUpJGVo5CWo5CVopGVo5GVo5GVoweUpsIAAAANdFJOUwAz8iEdXWUZXGEc7WvLwYQWAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAP0lEQVQoz2NgOcIAA0aXBGDM2LuKcNG7cGFGXYSw0EALK8OEc+9exRRFqEUygW6CSGHWi3D/akT4sk+B0AwMADIvMyQyQzjIAAAAAElFTkSuQmCC'); img.setAttribute('alt', 's-resize-2'); img.setAttribute('width', '10'); img.setAttribute('height', '17'); } else { img.setAttribute('src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUBAMAAAD1iJl/AAAAKlBMVEVHcEyRlaORlaORlaKQlaSRlaORlaOSlKSRlaOQlqOQlaKRlaORlaORlaMHlKbCAAAADXRSTlMAM/IhHV1lGVxhHO1ry8GEFgAAAHRJREFUGNNdzbENgCAQheFn7KwIG9DYmdjYG1dwHEvncBdnoL9dRE7wHVSX+79wGE7w63fgiI5XPq64JNCmm+TGJsy8JJX2gVHQ4Ai5v4DHn9WpNvIl0q9fNbc182ntBikwKLPRopeJRZk1qDlXWIuAZS7TA0pEMyTsvCrkAAAAAElFTkSuQmCC'); img.setAttribute('alt', 's-resize-1'); img.setAttribute('width', '17'); img.setAttribute('height', '10'); } return false; } } })();