ANTIPUB LYCOS LE 21/06/04

cs_kalachnikov Messages postés 16 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 23 juin 2004 - 21 juin 2004 à 15:36
Zugmegui Messages postés 2 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 4 mai 2005 - 4 mai 2005 à 19:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23872-antipub-lycos-le-21-06-04

Zugmegui Messages postés 2 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 4 mai 2005
4 mai 2005 à 19:53
La solution du code "if(top!=self) top.location=self.location;" marche super bien ...

Perso j'utilise ce code sur mon blog, créé avec PHP-Nuke, et c'est le seul moyen pour que la gestion des nom de page fonctionne. Je m'explique :
PHP-Nuke change le nom des pages en fonctions de votre position dans le site. Exemple "Nom_du_site :: nom_de_la_page".

Avec la pub de lycos, ce n'est pas le titre de votre page qui est prit en compte par le navigateur web, mais celui de la page de la pub de lycos, dans laquelle est encapsuler votre site.

Grace a ce bout de code, le problème ne se pose plus, puisqu'il "désencapsule" votre page ... votre navigateur peut donc prendre en compte le bon titre de page !!

Deuxième avantage : Pour ceux qui ont a coeur de se faire référencer sur un moteur de recherche, ils n'ignorent pas que les pages pleines de frames gènent l'indexation des pages. Les developpeur de PHP-Nuke se sont fais ch*** pour ne pas utiliser de frame dans ce but, et lycos casse tout avec une pub que tout le monde cherche à supprimer ...

A diffuser largement, ce code est celui que tout le monde cherchais depuis longtemps !!

Je donne 10/10 !
jeune63000 Messages postés 2 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 16 avril 2005
16 avril 2005 à 15:20
Perso moi j'ustilise un ptit mix de tous se que j'ai trouvé et ca a l'aire de marcher pour les sites muli frame (avec des frameSet)

Preuve => http://membres.lycos.fr/frederic63000/

En fait j'en ai chié pour trouver un code qui marche et sur IE et sur Firefox (les 2 navigateur les plus utilisé je pense)

A placer partout avant les FrameSet de la page principale (et dans les autres pages si il faut)

Moi perso je l'ai mis dans le Head avant les FrameSet et ca marche

Code:


<script language="javascript">
// Enleve les pub à la con de lycos
resizeGoogleAdFrame=new Function ("");
setCookie=new Function ("");

function kill_ad()
{
ad_frame = 0;
resizeGoogleAdFrame=new Function ("");
setCookie=new Function ("");
window.top.document.body.cols = "*,0";
setTimeout("kill_ad()",1000);
}
function setInterval(x,y)
{
return 0;
}
window.setTimeout("kill_ad()",1000);

//if(top!=self) top.location=self.location; //A test, parait que juste ca ca marche pour les page simple (sans Frameset)
</script>
vwdamien Messages postés 4 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 5 avril 2005
5 avril 2005 à 13:44
Bonjour bonjour tout le monde, j'ai réussi à supprimer la frame de droite ms je n'arrive pas a supprimer celle d'en haut, qqn sait-il donner beaucoup de détail parce que je ne comprends pas. Si vous n'êtes pas membres ou si vous ne voulez pas poster de messages pour ça merci de m'ajouter a vos contact msn:

damien_vw@hotmail.com

merci à vous ++
cs_dr_einstein Messages postés 20 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 19 avril 2005
28 mars 2005 à 19:38
j' arrive a faire marcher le code j utilise des frame


sa ne generai pas ?
je l'ai mis dans la page qui regroupe les frames

ps: faut bien le mettre avant <html>
kegi Messages postés 164 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 25 août 2008
19 nov. 2004 à 22:46
Félicitation, 10/10

kevin (kegi@hotmail.com)
cs_kalachnikov Messages postés 16 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 23 juin 2004
30 juin 2004 à 12:50
pour les pages php,
bien verifier que l insertion javascript s effectue

APRES
session_start()


et APRES tous les
setcookie
cs_kalachnikov Messages postés 16 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 23 juin 2004
30 juin 2004 à 12:46
si c est juste les calques du haut que vous voulez enlevez :

function hs(c)
{
if(!document.getElementById(c)) return;
document.getElementById(c).style.visibility='hidden';
document.getElementById(c).style.width='0px';
document.getElementById(c).style.height='0px';
}
function kc()
{
hs('AD');
hs('ADIMG');
hs('ADHEAD');
hs('ADCLOSE');
}
var tkc=setInterval("kc()",1);
setTimeout("clearInterval(tkc)",101);
var ctkc=setInterval("kc()",10);
setTimeout("clearInterval(ctkc)",10001);


explications... :
en haut de page, lycos insère 4 calques(AD, ADIMG, ADHEAD et ADCLOSE),
pour les voir disparaitre il faut normalement attendre 10 secondes.
le but est d etre sur de les faire disparaitre le plus tot possible apres avoir chargé la page.
le code comprend une fonction hs,
cette fonction permet de neutraliser un calque en général,
en le dimensionnant à 0 par 0, en le cachant, le tout si ce calque existe.
la fonction kc appel la fonction hs pour les 4 calques affichés par lycos.
La fonction kc est appelée grace à l instruction setInterval
cette instruction permet d appeler une fonction tous les x temps apres le chargement de la page.
Ici, pour les 100 premières millisecondes on appel la fonction kc(neutralisation des 4 calques),
toutes les 1 milliseconde.
puis(jusqu a 10 secondes apres le chargement de la page...)
on l appel plus que tous les 10 millisecondes.
L'instruction setTimeout permet de lancer une fonction une fois apres le chargement de la page, apres un temp x donne,
ici on désinitialise les setInterval(pour eviter que la page conserve des timers inutiles).






pour la frame de droite :

1 ERE METHODE(cherché trouvé par mes soins...)

function po()
{
if(!parent.document) return;
window.top.document.body.cols = "*,0";
resizeGoogleAdFrame=new Function ("");
}
var cpo=setInterval("po()", 1);
setTimeout("clearInterval(cpo)",501);


explications... :
lycos encapsule votre page web dans une page contenant votre page web dans une frame a gauche,
et de la publicité dans une frame a droite(140 pixels de largeur).
une première idée aurait été de betement redimensionner la frame de droite a 0 pixels
(window.top.document.body.cols = "*,0";),
seulement ce n est pas possible car voila un extrait
de ce que lycos insère a la suite de votre page web:
function resizeGoogleAdFrame() {
window.top.document.body.cols = "*,140";
}
if (ad_frame == 1 && AD_clientWindowSize()) {
setInterval("resizeGoogleAdFrame()", 30);
}
en résumé, toutes les 30 millisecondes, lycos redimensionne la frame de droite,
toute tentative de redimensionnement devient donc un échec ou une lutte infinie.
(on note au passage le bourrinage effectué par lycos,
il ne faut pas s ettoner apres que les navigateurs ne tiennent pas toujours le choc...)
l'idée de mon code est de surcharger la fonction resizeGoogleAdFrame()
qui redimensionne la fenetre en la remplacant par du vide grâce a cette ligne
resizeGoogleAdFrame=new Function ("");
la fonction po()
fait rien si notre frame est la frame principale.
sinon elle redimensionne la frame de droite a 0,
surcharge la fonction resizeGoogleAdFrame en la vidant.
ceci est fait toutes les millisecondes pendant 500 millisecondes.


l inconvégnient c est que le navigateur konqueror
ne semble pas supporter le surchargement de fonction
(c est ptetre pas le seul),
en plus c est pas super propre comme méthode.



2 EME METHODE(trouvé sur plusieurs contributions de codes-sources,
'parait que ca vient de prizee.com) :

if(top!=self) top.location=self.location;


explication... :
ultra simple et ultra propre,
si votre page n est pas la frame principale,
votre page devient la frame principale

ATTENTION !
ceci doit etre inséré que si votre page est sensé etre la frame principale de votre site !
james71 Messages postés 2 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 30 juin 2004
30 juin 2004 à 09:04
ca marche pas j'ai ca comme erreur :

Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/multimania/fr/j/a/m/jamesjames71/htdocs/forum/index.php:3) in /data/members/free/multimania/fr/j/a/m/jamesjames71/htdocs/forum/includes/page_header.php on line 504

et j'ai mis ca en tete de ma page php :

<html>

<script language="javascript" src="kclycos.js"></script>

</html>
<?
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
29 juin 2004 à 19:16
correction: apres un 2eme essai, ca MAAAAAAAAAAARCHE!!!!!!!!!!!!!!
merci, kalachnikov!!!. au fait, james71, g essayé avec un page en .php, ca merche aussi. peut-etre qu'il faut que tu sorte l'apel au fichier js du code php, en ajoutant des balises html et body , puis la balise script avant le debut du code php, c a dire le "<?"

au fait:je met 10
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
29 juin 2004 à 19:06
chez moi, derniere version d'ie, ca ne marche pas.
la pub en haut disparait, mais la frame lutte, ma page n'apparait pas, et se recharge tout le temps, avec un "?" en plus dans l'url et le titre à chaque fois. comme j'ai déja un code anti-frame, trouvé ici, et qui marche, pourrais tu m'indiquer quelle est la partie de ton code à supprimer pour qu'il ne serve plus qu'a supprimer la pub en haut? si apres ca marche, je met un 10.
james71 Messages postés 2 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 30 juin 2004
23 juin 2004 à 15:43
ca marche pas avec le php
cs_kalachnikov Messages postés 16 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 23 juin 2004
21 juin 2004 à 16:33
pour la frame de droite il s avère qu il y a plus simple,
ca marche avec tous les navigateurs
voici la version modifié de kclycos.js
----------------------------------------------------------------
function hs(c)
{
if(!document.getElementById(c)) return;
document.getElementById(c).style.visibility='hidden';
document.getElementById(c).style.width='0px';
document.getElementById(c).style.height='0px';
}
function kc()
{
hs('AD');
hs('ADIMG');
hs('ADHEAD');
hs('ADCLOSE');
}
var tkc=setInterval("kc()",1);
setTimeout("clearInterval(tkc)",101);
var ctkc=setInterval("kc()",10);
setTimeout("clearInterval(ctkc)",10001);
if(top!=self) top.location=self.location;
----------------------------------------------------------------
cs_kalachnikov Messages postés 16 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 23 juin 2004
21 juin 2004 à 15:36
dans le source c est marqué kclysoc.js
je me suis trompé c est bien kclycos.js
Rejoignez-nous