Extra caution is recommended when installing recently uploaded/updated scripts (read more)
Be sure you trust any scripts you install
Disable Text Ads
Disables inline text ads from Vibrant Media (IntelliTXT), AdBrite, Infolicious (lingoSpot), Kontera, Linkworth, EchoTopic, Targetpoint and MediaText. Version 8.2, updated 02/25/08.
This script does exactly what it says - it hides contextual ads within a page so you, the user, can once again safely mouse over your browser window. Currently, version 8.2 will block ads from Vibrant Media (IntelliTXT), AdBrite, Infolicious (lingoSpot), Kontera, Linkworth, EchoTopic, Targetpoint and MediaText.
Version 8.2 re-fixes Linkworth and Vibrant Media blocking - apologies for the rapid version changes.
Credit to Brian Donovan for the basic approach. his JS is clearly better than mine. Credit to Mike for the original code for blocking Linkworth ads, and Decriptor for additional Linkworth and Vibrant Media blocking code.
|
|
Ah, thanks for the info. I'll roll that change into the next version. |
|
|
Ah, thanks for the info. I'll roll that change into the next version. |
|
|
I totally understand, I have some very critical things happening here, for now I can can provide you with some very helpful links that explain it well.
|
|
|
@Eric: Thanks. :) @Descriptor: Sorry for the slow reply. I wasn't aware of the FF-only textContent function, honestly. I'd like to claim I don't use it because I'm desperately holding out for CreamMonkey/GreaseKit support in an upcoming version (which I am, by the way), but it just isn't true. Is there some advantage to textContent? |
|
|
Keep up the good work! I absolutely forgot websites had text ads until i came across the bookmark to this website as i was reorganizing my bookmarks. It reminded me to update your awesome script. I appreciate this script so much!!! |
|
|
I was wondering why you don't use the textContent property. I think many script writers either don't know about it or don't want to remove BR tags. Since TextAd scripts replace text which should never have any BR tags, I can't imagine why it would ever be a problem here. |
|
|
Thanks Grant, I'll certainly check it out. I wasn't upset because you didn't reply, I was frustrated because I couldn't get any definite answer as to whether DOMNodeInsertedIntoDocument fires or when it fires. I know what the W3C says but Mozilla says nothing. Your comment led me to a different solution. That doesn't indicate if you even considered my suggestions at all, and you left DOMNodeInsertedIntoDocument in while nobody at all complained that it didn't work, (for a week from Feb 21 there are no comments between mine and yours). I'm glad you cleared that all up. And you explained the situation nicely. Perhaps I just lost patience too soon. I forgot about that issue with iterators, but I wasn't really looking at that part yet - I was looking at what I noticed wasn't working. You can certainly just use ORDERED_NODE_SNAPSHOT_TYPE and create a loop getting each snapshotItem() Your EchoTopic code works fine, I just noticed that you could do it in one line. The code I posted using document.createTextNode mostly saves you the trouble of trying to figure out which node the text is in. Seems more strait-forward to me. I discovered Greasemonkey because of this script, and I can't remember the trouble I had to go through to find greasemonkey-mod which works in SeaMonkey. |
|
|
Thanks for the great update Grant. Life would be unbearable without my Grease Monkey and your script. @Descriptor
|
|
|
Thanks, Grant! I am very relieved to see the this update. These ads are spreading fast and they're really annoying. A forum I read uses a "free" host that just added text ads. So every post on the forum has random double-underlined links sprinkled through it! Total eyeball abuse. |
|
|
Okay, 8.2 is up and should fix Linkworth and Vibrant Media blocking. Apologies for the delay. For those who care, using iterator-style result sets with document.evaluate() is a bad idea if you're planning on modifying the DOM - the iterator is invalidated once you change the document (hence the problems with only some links being removed). |
|
|
@Descriptor: Believe it or not, I have other demands on my time. Yes, DOMNodeInsertedIntoDocument appears to be the wrong choice; it appeared to work at one point in FF2.x on Mac, likely because of something wrong with my test suite rather than any real success. No, I haven't released a new version that fixes the problems previously noted; I'm seeing inconsistent results when blocking Vibrant Media ads and digging through their js to determine why takes time. I'm certainly open to alternative approaches; patches happily accepted. I'll likely reject anything that involves touching every single anchor tag on the page, however, as page rendering performance suffers greatly on slower machines. Thanks for the EchoTopic patch - I'll include it in the next release. |
|
|
Well, I'm though commenting here. I upgraded SeaMonkey and 'DOMNodeInsertedIntoDocument' still does not fire, while 'DOMNodeInserted' works fine. I knew upgrading wouldn't make any difference because it uses the same Gecko version as Firefox.
|
|
|
// This seems to work for EchoTopic unsafeWindow.tf_maxKeywords = 0; Tried it here: http://www.gamershell.com/news/45382.html |
|
|
While researching this I (we) discovered a (new?) bug: in DOMNodeInsertedIntoDocument |
|
|
Grumble. Some interesting results regarding Vibrant Media - it would appear they're inserting their ads into the page in a couple of ways. The only reliable way to catch all of them seems to be in the load handler, which produces an annoying flicker as the links appear in the page and then are removed as I iterate over them. I'm still looking for a better solution - time to read the latest version of their js again. |
|
|
Oh, wait, it does NOT work correctly...<a itxtdid="... classname="iAs"...>Windows <nobr>XP<img ... src="http://images.intellitxt...is replaced with Windows That's with using DOMNodeInserted, I didn't notice the "XP" was gone. |
|
|
DOMNodeInsertedIntoDocument does not work at all.
document.addEventListener("DOMNodeInserted", function(){document.title="DOM Changed at " + new Date()}, false);
|
|
|
OK, I haven't checked this yet, but the reason I wrote it the way I did is because they add a nobr and an image tag to the text node, the nobr is the first child - you can see it isn't there if you look at the page source.
|
|
|
@Descriptor - thanks for pointing that out. Your comment led me to a different solution. @dan: Linkworht blocking should work for you in 8.1 - let me know if it doesn't. |
|
|
I just updated to version 8.0 yesterday, because of Linkworth text ads. However, on this page:
I see that the first link is removed, but all subsequent links are not (i.e. the word job in strikeout text is removed, but the next paragraph still has the word 'funny' as a linkworth text ad.) Is there any way to fix the script for this case?
|
|
|
In case it isn't obvious, that should be inside the load event handler. |
|
|
No, it doesn't work there, another good reason not to visit that site. The DOMNodeInserted event isn't fired until after the intellitxt script has already run, you can see it fire when you mouse-over, so those links aren't removed. I didn't look at their script to see why.
var itxtdid = document.evaluate("//a[@itxtdid]", document, null, 6, null);
for(var i=0; i < itxtdid.snapshotLength; i++){
itxtdid.snapshotItem(i).parentNode.replaceChild(
document.createTextNode(itxtdid.snapshotItem(i).textContent),
itxtdid.snapshotItem(i));
}
|
|
|
I just went back the PC Mag link and they have added this now: and the word HDTV shows an ad if you mouse over it.
Thanks,
|
|
|
Thanks for checking. Yes, the text ad on the PC Mag site is now gone. The OpenAds seemed like a text ad as it came up when I move the mouse over the text. It must have just been a timing thing. |
|
|
@Stan_Green - this script isn't designed to work on pop-up ads or banner ads, just text link ads. The OpenAds I saw on Girl's Life were banner ads, and I didn't see any text link ads on the pcmag page you linked (with our without this script running). |
You could comment on this script if you were logged in.
