您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes the offensive/derogatory warning on google definitions
// ==UserScript== // @name Remove Offensive Warning on Definitions // @namespace http://tampermonkey.net/ // @version 0.1 // @description Removes the offensive/derogatory warning on google definitions // @author AnusPropeller // @match https://www.google.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=google.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Code that should work by itself but needs to be called // multiple times for some stupid reason function removeThis(){ console.log("Remove Bull Called"); // Finds the definitions var elemnts = document.querySelectorAll(".aztjNb"); // Now we iterate through each definition for (let i=0; i < elemnts.length; i++){ // Iterate through the definition's tags for (let c = 0; c < elemnts[i].children.length; c++){ // Checks for the warning sign; removes it if (elemnts[i].children[c].innerHTML.toString().length > 500){ console.log(elemnts[i].children[c].innerHTML.toString().length); elemnts[i].children[c].remove(); } // Checks for various unimportant words if (elemnts[i].children[c].textContent == "derogatory"){ console.log("derogatory"); elemnts[i].children[c].remove(); } if (elemnts[i].children[c].innerHTML =="offensive"){ console.log("offensive"); elemnts[i].children[c].remove(); } // Removes the element itself if there are no more tags // This is to move the definiton up: looks better if (elemnts[i].children.length < 1){ elemnts[i].remove(); } // Rmoves le bullet point when necessary if (elemnts[i].children[c].textContent == "•"){ if (elemnts[i].children.length < 3){ elemnts[i].children[c].remove(); } } } } } function openThis(){ var openthese = document.querySelectorAll(".V4cemf"); for (let p=0; p<openthese.length; ++p){ // Opens the definition openthese[p].click(); // Deletes the option to close it :sunglasses_face: openthese[p].remove(); } // Makes sure the definiton is readable and not // Blocked by the dumb and low max height that google // gives to the elements var heightg = document.querySelectorAll(".xpdxpnd"); for (let y=0;y<heightg.length;++y){ heightg[y].style.maxHeight= "1000px"; } // Another checker to see if there are no more tags // then deletes the element to give the definiton space var elemnts = document.querySelectorAll(".aztjNb"); for (let i=0;i<elemnts.length;++i){ if (elemnts[i].children.length < 1){ elemnts[i].remove(); } } } // Here lies the final attempt at being a BOSS :sunglasses_face: const observerOptions= { childList: true, attributes: true, subtree: true, } // Select Elements to observe changes const targetm = document.querySelector(".c8d6zd.xWMiCc.REww7c"); const targetn = document.querySelector(".xpdxpnd"); const buttontarg = document.querySelector(".MXl0lf.tKtwEb.wHYlTd.vk_arc"); // Create the chad observers, sets what functions they call on mutation const observer = new MutationObserver(removeThis); const oobserver = new MutationObserver(openThis); // Let the chads loose on the targets observer.observe(targetn, observerOptions); observer.observe(targetm, observerOptions); oobserver.observe(targetm, observerOptions); oobserver.observe(targetn, observerOptions); // Calls the function on Page load removeThis(); })();