Gmail Disable Sponsored Links

By Bandit Last update Jul 17, 2009 — Installed 1,824 times. Daily Installs: 5, 3, 7, 10, 7, 9, 2, 6, 5, 9, 10, 5, 12, 11, 3, 8, 7, 8, 9, 9, 6, 3, 6, 4, 12, 6, 9, 4, 7, 5, 7, 8

There are 3 previous versions of this script.

// ==UserScript==
// @name           Gmail Disable Web Clip Sponsored Links
// @namespace      userscripts.org
// @description    Automatically skips any sponsored links (and optionally tips) detected in the Gmail Web Clips feed.
// @include        http*://mail.google.com/*
// @copyright      James Nisbet
// @website        http://blog.bandit.co.nz
// @version        0.2
// ==/UserScript==

// disable gmail help tips too?
var hideTips = true;
// disable "in-email" adverts sidebar as well?
var hideAds = true;

// check for a sponsored link
function check() {
	
	var cliptype = document.getElementById(":rh");
	
	if(cliptype) {
	
		// first find the "next clip" button
		var nextclip = document.getElementById(":rf");
	
		// check if it has the word "sponsored" in it
		if(cliptype.innerHTML.indexOf("Sponsored")!=-1)	{
			// this is a sponsored link, skip it, biatch
	
			// 'click' next button by simulating a user click
			fireEvent(nextclip,"click");
	
		}
	
		// not an advert, is it a tip? also check if we're hiding tips
		else if(hideTips && cliptype.innerHTML.indexOf("Tip")!=-1) {
			
			// 'click' next button by simulating a user click
			fireEvent(nextclip,"click");
	
		}
		
	}
	
}

// run this check every 100 milliseconds, gmail won't mind
var clipcheck = setInterval(check, 100);

// ... and hide ads if necessary
if(hideAds) {
	
	// borrowed from http://userscripts.org/scripts/show/43495
	var css = "table[class='Bs nH iY'] tr td[class='Bu']:last-child {display:none !important;}";

	if (typeof GM_addStyle != "undefined") {
		GM_addStyle(css);
	} else if (typeof addStyle != "undefined") {
		addStyle(css);
	} else {
		var heads = document.getElementsByTagName("head");
		if (heads.length > 0) {
			var node = document.createElement("style");
			node.type = "text/css";
			node.appendChild(document.createTextNode(css));
			heads[0].appendChild(node); 
		}
	}
	
}

// simple event firing function
// http://jehiah.cz/archive/firing-javascript-events-properly
function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}