Gmail Ad Blocker

Hide gmail ads as they appear. Not super elegant but works.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         Gmail Ad Blocker
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  Hide gmail ads as they appear. Not super elegant but works.
// @author       James Sterling
// @match        https://mail.google.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = '.hidden { display: none; }';
    document.getElementsByTagName('head')[0].appendChild(style);

    function blockAds() {

        var spans = document.querySelectorAll('tr > td > div > span > span');
        var searchText = "Ad";

        for (var i = 0; i < spans.length; i++) {
            if (spans[i].textContent == searchText) {
                spans[i].parentElement.parentElement.parentElement.parentElement.style = 'display: none';
                spans[i].parentElement.parentElement.parentElement.parentElement.classList.toggle('hidden');
            }
        }
    }

    function setup() {

        blockAds();

        setInterval(function() {
            blockAds();
        }, 1000);

        // Listen for tab changes
        document.querySelectorAll('[role="tab"]').forEach(function (el){
            el.addEventListener("click", function() {
                blockAds();
                var counter = 0;
                var look = setInterval(function() {
                    if (counter > 250) {
                        clearInterval(look);
                    }
                    blockAds();
                    counter++;
                }, 5);
            });
        });
    }

    var watcher = setInterval(function() {
        if (document.querySelectorAll('[role="tab"]').length > 0) {
            setup();
            clearInterval(watcher);
        }
    }, 5);

})();