// ==UserScript== // @name CMG Hacks for Safari & Firefox // @homepage http://youtube.com/theostechtips // @author Theo's Tech Tips // @description A port of my chrome extension (CMG Hacks) for Safari and Firefox! // @grant none // @match *://www.coolmathgames.com/0-* // @run-at document-start // @version 2.2 // @license MIT // @namespace https://greasyfork.org/users/995648 // @downloadURL none // ==/UserScript== //Make the buttons var div = document.querySelector(".pane-title"); if (div) { var randNum1 = Math.floor(Math.random() * 1000000000); var randNum2 = Math.floor(Math.random() * 1000000000); var str = `Skip Ad ` div.insertAdjacentHTML('beforeend', str); } //Function to wait for elem function waitForElm(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); }); } waitForElm('.blocker-detected-2').then((elm) => { document.getElementById(randNum1).click() }) if (document.getElementById(randNum2) && document.getElementById(randNum1)) { document.getElementById(randNum2).onclick = function () { var elem = document.getElementById("swfgamewrapper"); if (!elem.webkitRequestFullScreen) { elem.mozRequestFullScreen() } else { elem.webkitRequestFullScreen(); } } document.getElementById(randNum1).onclick = function () { if (document.body.contains(document.querySelector(".blocker-detected-2"))) { document.querySelector(".blocker-detected-2").remove(); } } } if (window.location.href.indexOf("https://www.coolmathgames.com/0-chess") > -1) { document.getElementById(randNum2).style.display = "none"; document.getElementById(randNum1).style.display = "none"; } //Block specific functions cmgGoogleAdBreak = undefined; isCmgAdBreakDone = undefined; loadGoogleAds = undefined; waitForElm("#randomAdBlockDiv").then((elm) => { elm.remove() })