Aaaah, quand je repense à l'âge d'or de l'hébergement gratuit, où une bannière sur la page était le seul désagrément - et déjà à ce moment-là, on se plaignait et on cherchait des méthodes pour s'en débarrasser. Là, maintenant, ce n'est pas bien différent, sauf que le contenu publicitaire est bien plus virulent...
Les bannières sont toujours de mise, bien sûr - mais elles ne sont plus seules. Navigations supplémentaires avec des boutons bien flashy qui mènent sur des offres douteuses, bannières Google et autres Iframes invasifs, captures des clicks dans la page pour ouvrir des popups intempestifs, calques flash... Il existe toujours des solutions pour s'en débarrasser ou au moins diminuer l'impact de ce marketing féroce, et j'aimerais en présenter quelques-unes qui sont assez efficaces, et imbattables combinées:
L'overloading de fonctions javascript
La plupart des sites d'hébergement ont une série de fichiers javascript qui sont automatiquement inclus dans toutes les pages, et qui contiennent des fonctions qui sont exécutées dans la page. Pour s'en débarrasser, il suffit d'utiliser l'overloading, donc de les redéfinir vides dans la page.
Avantages:
- simple
Inconvénients:
- no fonctionne que si on peut redéclarer la fonction avant qu'elle ne soit exécutée
Disons par exemple que le fichier "bannieres.js" est inclus dans la page et qu'il contient la fonction "ouvrirPopups". Il suffit alors de redéclarer cette fonction (dans le code de la page ou par un fichier javascript à inclure après le fichier source) avant qu'elle ne soit exécutée:
function ouvrirPopups() {}
De cette manière, la fonction originale est remplacée par cette nouvelle version qui ne fait absolument rien
La contre-attaque des feuilles de style
Ici le but n'est pas d'enlever quoi que ce soit, mais tout simplement de cacher tout ce qui est indésirable. Le principe est simple: on place un calque <div> sur la page entière qui flotte au-dessus de tout, et qui est utilisé pour afficher le vrai contenu. Le plus grand avantage est qu'on n'a pas besoin de s'occuper de ce qu'il y a 'dessous' - si l'hôte change son contenu publicitaire, cela ne change rien au calque.
Avantages:
- rapide
- simple
- indépendant du contenu publicitaire
Inconvénients:
- n'enlève pas la capture des clicks dans la page
Exemple de style pour le calque:
<style>
#Content{
position:absolute;
top:0;
left:0;
width:100%;
height:500px;
background:#fff;
z-index:9999999;
}
</style>
<div id="">
<!-- contenu de la page -->
</div>
Bien sûr avec les feuilles de style on peut faire encore bien plus. Pour peu que des éléments "nocifs" dans la page ont un attribut "id", on peut très simplement s'en débarrasser même si ils sont activés dans la page par javascript:
<style>
#IDElement{
position:absolute;
top:0;
left:0;
width:1px;
height:1px;
display:none;
visibility:hidden;
}
</style>
Avec un peu plus de connaissances javascript et DOM (Document Object Model), on peut bien sûr faire encore bien plus, avec le gros désavantage que si l'hôte change ses scripts il faut tout refaire - et avec la complexité de certaines opérations, cela peut devenir coûteux en temps. C'est pour cela que personellement je préfère la solution du calque qui est simple et rapide à mettre en place.