Skip to content

Instantly share code, notes, and snippets.

@yvmarques
Created December 5, 2016 23:04
Show Gist options
  • Save yvmarques/357b5622b7ea91e4c21c3c5ac18d5d8f to your computer and use it in GitHub Desktop.
Save yvmarques/357b5622b7ea91e4c21c3c5ac18d5d8f to your computer and use it in GitHub Desktop.
A little script that remove 10% of the words from a given texte when the ad blocker is enabled.
var adblock = false;
<!DOCTYPE html>
<html>
<head>
<title>Ad Block</title>
<script type="text/javascript">var adblock = true;</script>
<script src="advertising.js"></script>
</head>
<body>
<div class="article">
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper.</p>
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Etiam porta sem malesuada magna mollis euismod. Aenean lacinia bibendum nulla sed consectetur.</p>
<p>Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Nullam id dolor id nibh ultricies vehicula ut id elit. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>
<p>Vestibulum id ligula porta felis euismod semper. Maecenas faucibus mollis interdum. Aenean lacinia bibendum nulla sed consectetur. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
</div>
<script type="text/javascript">
(function(d, a){
if (!a) {
return;
}
var el = d.querySelector('.article'),
text = el.innerText,
words = text.split(/\s+/),
machted = []
;
// Utils
var Utils = {
traverseElement: function(el, regex, keyword) {
if (!/(script|style)$/.test(el.tagName)) {
var child = el.lastChild;
while(child) {
if (child.nodeType == 1) {
this.traverseElement(child, regex, keyword);
}else if(child.nodeType == 3) {
this.textReplacement(child, regex, keyword);
}
child = child.previousSibling;
}
}
},
textReplacement: function(node, regex, keyword) {
node.data = node.data.replace(regex, Array(keyword.length + 1).join('_'));
}
};
iter = Math.floor(words.length * 0.10);
for(var i = 0; i <= iter; i++) {
var j = 0;
do {
var keyword = words[Math.floor(Math.random() * (words.length - j))];
j += 1;
}while(keyword.length <= 3 || machted.indexOf(keyword) >= 1);
Utils.traverseElement(el, new RegExp(keyword.replace(/[)(]/g, ''), "g"), keyword.replace(/[)(]/g, ''));
machted.push(keyword);
}
})(document, adblock);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment