seangates
seangates

Reputation: 1522

Remove Server-side Generated Banner Ads - Greasemonkey

I am on an airplane flight and they are forcing every page (including this Stack Overflow page) to have a banner at the top with their ads on it.

Here is the code I have for my UserScript in Firefox, but it isn't working:

// ==UserScript==
// @name           SW Ad remover
// @namespace      seangates.com/sw_ad_remover
// @include        *
// @require        https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js
// ==/UserScript==

$(document).ready(function(){
 $('script[src$="swa.py"]').remove();
 $('div[id^="__swa"]').hide();
 $('body').css('padding',0);

 console.log('working');
});

Any thoughts as to why this would not be working? I can't even get a console.log to work even if I put it in the beginning of the ready() block.

Upvotes: 2

Views: 1851

Answers (2)

Yi Jiang
Yi Jiang

Reputation: 50115

And of course, there's always the option of not using jQuery here, since only Greasemonkey has implemented the @require rules.

var s = document.querySelectorAll('script[src$="swa.py"]'), 
    d = document.querySelectorAll('div[id^="__swa"]'); 

for(var i = 0; i < s.length; i++){
    s[i].parentNode.removeChild(s[i]);
}

for(i = 0; i < d.length; i++){
    d[i].style.display = 'none';
}

document.body.style.padding = '0px';

document.querySelectorAll is only available in IE8 and above, but that's alright here. This script has not tested, but it should work.

Upvotes: 0

Brock Adams
Brock Adams

Reputation: 93493

Greasemonkey does not work with jQuery 1.4.4.

Use jQuery 1.3.2.

Note that you will have to uninstall and then reinstall your script to ensure that the correct jQuery file is copied to your PC.

Upvotes: 2

Related Questions