Javascript qui s'affiche pas dans un <table> si xhtml

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Javascript qui s'affiche pas dans un <table> si xhtml

par hormia » 31 mai 2005, 10:16

Mais celà n'est pas de moi mais de l'éditeur javascript.
Et la le kill fonctionne très bien si on click on coté sans les ().
D'ailleurs si on ajoute les () comme tu dis, ca me sort une erreur javascript qui dis "Non implémenté" et rien ne s'affiche.

Mais je crois pas que là soit le problème de la disparition de mes images.

par Cyrano » 31 mai 2005, 10:11

Vérifie tes scripts, exemple:
function kill()
{
   if(document.getElementById)
      skn.visibility = "hidden";
}
document.onclick = kill; 
Tu appelles "kill", or ce que tu veux faire, c'est appeléer la fonction kill(), donc écris:
document.onclick = kill(); 

Javascript qui s'affiche pas dans un <table> si xhtml

par hormia » 31 mai 2005, 09:52

Bonjour,

j'ai un script qui disparait si on le mets dans un
<table><tr><td> le script </td></tr></table>
et que le doctype est est xhtml. avec un doctype html ca marche.

J'ai réussit à localiser la fonction qui cause le problème.

Voici le script, c'est un menu déroulant pris sur editeurjavascript.com, que j'ai modifié.
<script language="javascript" type="text/javascript">
//bgcolor='#006699';
//bgcolor2='#6699CC';
document.write('<style type="text/css">');
document.write('.popper { position: absolute; visibility: visible; z-index:150; top:100px; left:150px ');
document.write('#topgauche { position:absolute;  z-index:100; }');
//document.write('A:hover.ejsmenu {color:#FFFFFF; text-decoration:none;}')
//document.write('.ejsmenu {color:#FFFFFF; text-decoration:none;}')
document.write('</style>');
document.write('<div style="position:relative;height:22"><div class="popper" id="topdeck"></div>');

var Maccueil = new Image;
var Maccueil = "image/Menu/Maccueil.jpg";
var Maccueil2 = new Image;
var Maccueil2 = "image/Menu/Maccueil2.jpg";
var Masso = new Image;
var Masso = "image/Menu/Masso.jpg";
var Masso2 = new Image;
var Masso2 = "image/Menu/Masso2.jpg";
var Malbum = new Image;
var Malbum = "image/Menu/Malbum.jpg";
var Malbum2 = new Image;
var Malbum2 = "image/Menu/Malbum2.jpg";
var Metudiant = new Image;
var Metudiant = "image/Menu/Metudiants.jpg";
var Metudiant2 = new Image;
var Metudiant2 = "image/Menu/Metudiants2.jpg";
var Mnews = new Image;
var Mnews  = "image/Menu/Mnews.jpg";
var Mnews2 = new Image;
var Mnews2  = "image/Menu/Mnews2.jpg";
var Mlivreor = new Image;
var Mlivreor = "image/Menu/Mlivreor.jpg";
var Mlivreor2 = new Image;
var Mlivreor2 = "image/Menu/Mlivreor2.jpg";
var Mpartenaire = new Image;
var Mpartenaire = "image/Menu/Mpartenaires.jpg";
var Mpartenaire2 = new Image;
var Mpartenaire2 = "image/Menu/Mpartenaires2.jpg"
var Mcontact = new Image;
var Mcontact = "image/Menu/Mcontact.jpg";
var Mcontact2 = new Image;
var Mcontact2 = "image/Menu/Mcontact2.jpg";
var Moffre = new Image;
var Moffre = "image/Menu/Moffres.jpg";
var Moffre2 = new Image;
var Moffre2 = "image/Menu/Moffres2.jpg";
var Mlien = new Image;
var Mlien = "image/Menu/Mliens.jpg";
var Mlien2 = new Image;
var Mlien2 = "image/Menu/Mliens2.jpg";

var bienvenue = new Image;
var bienvenue = "image/Banners/bienvenue.jpg";
var presentation = new Image;
var presentation = "image/Banners/presentation.jpg";
var etudiant = new Image;
var etudiants = "image/Banners/etudiants.jpg";
var news = new Image;
var news = "image/Banners/news.jpg";
var albums = new Image;
var albums = "image/Banners/albums.jpg";
var lien = new Image;
var lien = "image/Banners/lien.jpg";
var offre = new Image;
var offre = "image/Banners/offre.jpg";
var partenaires = new Image;
var partenaires = "image/Banners/partenaires.jpg";
var livreor = new Image;
var livreor = "image/Banners/livreor.jpg";
var contact = new Image;
var contact = "image/Banners/contact.jpg";
var admin = new Image;
var admin = "image/Banners/admin.jpg";


function changement_image(image){
NavName = navigator.appName;
if(NavName=="Microsoft Internet Explorer"){
image=image+'.jpg';
var imagepre=document.all.banniere.src.substring(document.all.banniere.src.lastIndexOf('/')+1);
var imagesui=image.substring(image.lastIndexOf('/')+1);
if(imagepre!=imagesui){
  document.all.banniere.filters.blendTrans.Apply();
  document.all.banniere.src = 'image/Banners/'+image;
  document.all.banniere.filters.blendTrans.Play();
  }
}
else{
if(image=="bienvenue"){
document.all.banniere.src = bienvenue;
}
if(image=="presentation"){
document.all.banniere.src = presentation;
}
if(image=="etudiants"){
document.all.banniere.src = etudiants;
}
if(image=="news"){
document.all.banniere.src = news;
}
if(image=="albums"){
document.all.banniere.src = albums;
}
if(image=="lien"){
document.all.banniere.src = lien;
}
if(image=="offre"){
document.all.banniere.src = offre;
}
if(image=="partenaires"){
document.all.banniere.src = partenaires;
}
if(image=="livreor"){
document.all.banniere.src = lirveor;
}
if(image=="contact"){
document.all.banniere.src = contact;
}
if(image=="admin"){
document.all.banniere.src = admin;
}
}
}


zlien = new Array;
zlien[0] = new Array;
zlien[1] = new Array;
zlien[2] = new Array;
zlien[3] = new Array;

zlien[0][0] = ' ';



<?
$i=0;
$sql = "SELECT * FROM e2rh_rubriquenews";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
while($data = mysql_fetch_array($req)) 
 { 
 echo'zlien[1]['.$i.'] =\'<table cellspacing="0" cellpadding="0" style="height:20px"><tr><td><a href="?page=news&id_rubriquenews='.$data["id_rubriquenews"].'" onmouseover="inews.src=Mnews2" onmouseout="inews.src=Mnews" title="'.$data["nom"].'" class="sousmenu">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$data["nom"].'</a></td></tr></table>\';'."\n";
$i++;
 }
?>
zlien[1][<?=$i?>] = '<table cellspacing="0" cellpadding="0" style="height:20px"><tr><td><a href="?page=news&id_rubriquenews=-1" title="Divers" class="sousmenu" onmouseover="inews.src=Mnews2" onmouseout="inews.src=Mnews" style="width:200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Divers</a></td></tr></table>';


  <?
$i=0;
$sql = "SELECT distinct promo FROM e2rh_users where type_compte='0' and user_active='1' order by promo desc";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
while($data = mysql_fetch_array($req)) 
 {
 echo'zlien[2]['.$i.'] =\'<table cellspacing="0" cellpadding="0"><tr><td class="sousmenu"><a href="?page=galerie&promo='.$data["promo"].'" onmouseover="ietudiant.src=Metudiant2" onmouseout="ietudiant.src=Metudiant" title="'.$data["promo"].'" class="sousmenu" style="width:200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$data["promo"].'</a></td></tr></table>\';'."\n";
   $i++;
 }
?>

<?
$i=0;
$sql = "SELECT * FROM e2rh_album order by id_album desc limit 0,4";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_array($req)) 
 {
   $nom_album=addslashes($data["nom_album"]);
  echo'zlien[3]['.$i.'] =\'<table cellspacing="0" cellpadding="0" style="height:20px"><tr><td width="500"><a href="?page=album&id_album='.$data["id_album"].'" onmouseover="ialbum.src=Malbum2" onmouseout="ialbum.src=Malbum" title="'.$nom_album.'" class="sousmenu" style="width:200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$nom_album.'</a></td></tr></table>\';'."\n";
  $i++;
}
?>
zlien[3][<?=$i?>] ='<table cellspacing="0" cellpadding="0" style="height:20px"><tr><td width="500"><a href="?page=album" onmouseover="ialbum.src=Malbum2" onmouseout="ialbum.src=Malbum" title="Autres" class="sousmenu" style="width:200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autres</a></td></tr></table>';



if(document.getElementById)
	{
	skn = document.getElementById("topdeck").style;
	skn.left = 109;
	}
	
function pop(pos){
msg = new Array;
msg[0]='test1';
msg[1]='test2';
//skn.visibility = "hidden";
a=true;
skn.top = pos;
var content = '<table cellpadding="0" cellspacing="0" style="width:110px;height:20px"><tr><td><table style="width:110px;height:20px" cellpadding="0" cellspacing="0">';
pass = 0;
while (pass < msg.length)
	{
	content +='<tr><td style="height:20px">'+msg[pass]+'</td></tr>';
	pass++;
	}
content += '</table></td></tr></table>';
document.getElementById("topdeck").innerHTML = content;
skn.visibility = "visible";
}


function kill(){
	if(document.getElementById)
		skn.visibility = "hidden";
}

document.onclick = kill;

if(document.getElementById){
document.write('<div id="topgauche"><table border="0" cellpadding="0" cellspacing="0" style="height:15px; width:110px">');
document.write('<tr><td><div id="acc"><a href="?page=accueil" title="Accueil" onmouseover="pop(0);"><img src="image/Menu/Maccueil.jpg" alt="Accueil" style="position:relative;left:5px" name="iaccueil" border="0" width="103" height="20" onmouseover="this.src=Maccueil2;" onmouseout="this.src=Maccueil;" /></a></div></td></tr>');
document.write('<tr><td><a href="?page=present" title="Présentation" onmouseover="pop(zlien[0],0);"><img src="image/Menu/Masso.jpg" alt="Asso\'s" style="position:relative;left:5px"  name="iasso"  border="0" width="103" height="20" onmouseover="this.src=Masso2;" onmouseout="this.src=Masso;" /></a></td></tr>');
document.write('<tr><td><a href="?page=listepromo" title="Etudiants" onmouseover="pop(zlien[2],40);"><img src="image/Menu/Metudiants.jpg" alt="Etudiants" style="position:relative;left:5px"  name="ietudiant"  border="0" width="103" height="20" onmouseover="this.src=Metudiant2;" onmouseout="this.src=Metudiant;" /></a></td></tr>');
document.write('<tr><td><a href="?page=news" title="News" onmouseover="pop(zlien[1],60);"><img src="image/Menu/Mnews.jpg" name="inews" alt="News" style="position:relative;left:5px"  border="0" width="103" height="20" onmouseover="this.src=Mnews2;" onmouseout="this.src=Mnews;" /></a></td></tr>');

document.write('<tr><td><a href="?page=album" title="Albums" onmouseover="pop(zlien[3],80);changement_image(\'album\');" onmouseout="changement_image(\'<?=$imaged?>\');"><img src="image/Menu/Malbum.jpg" border="0" alt="Albums" style="position:relative;left:5px"  name="ialbum" width="103" height="20" onmouseover="this.src=Malbum2;" onmouseout="this.src=Malbum;" /></a></td></tr>');
document.write('<tr><td><a href="?page=liens" title="Liens" onmouseover="pop(zlien[0],0);changement_image(\'lien\');" onmouseout="changement_image(\'<?=$imaged?>\');"><img src="image/Menu/Mliens.jpg" border="0" alt="Liens" style="position:relative;left:4px"  width="103" height="20" onmouseover="this.src=Mlien2;" onmouseout="this.src=Mlien;" /></a></td></tr>');
document.write('<tr><td><a href="?page=offre" title="Offres" onmouseover="pop(zlien[0],0);changement_image(\'offre\');" onmouseout="changement_image(\'<?=$imaged?>\');"><img src="image/Menu/Moffres.jpg" border="0" alt="Offres" style="position:relative;left:4px"  width="103" height="20" onmouseover="this.src=Moffre2;" onmouseout="this.src=Moffre;" /></a></td></tr>');
document.write('<tr><td><a href="?page=partenaire" title="Partenaires" onmouseover="pop(zlien[0],0);changement_image(\'partenaires\');" onmouseout="changement_image(\'<?=$imaged?>\');"><img src="image/Menu/Mpartenaires.jpg" alt="Partenaires" style="position:relative;left:4px"  border="0" width="103" height="20" onmouseover="this.src=Mpartenaire2;" onmouseout="this.src=Mpartenaire;" /></a></td></tr>');
document.write('<tr><td><a href="?page=livreor" title="Livre d\'or" onmouseover="pop(zlien[0],0);changement_image(\'livreor\');" onmouseout="changement_image(\'<?=$imaged?>\');"><img src="image/Menu/Mlivreor.jpg" border="0" alt="Livre d\'or" style="position:relative;left:4px"  width="103" height="20" onmouseover="this.src=Mlivreor2;" onmouseout="this.src=Mlivreor;" /></a></td></tr>');
document.write('<tr><td><a href="?page=contact" title="Contact" onmouseover="pop(zlien[0],0);changement_image(\'contact\');" onmouseout="changement_image(\'<?=$imaged?>\');"><img src="image/Menu/Mcontact.jpg" border="0" alt="Contact" style="position:relative;left:4px"  width="103" height="20" onmouseover="this.src=Mcontact2;" onmouseout="this.src=Mcontact;" /></a></td></tr>');

document.write('</table></div>');
}
document.write('</div>');
</script>


Donc mon menu déroulant s'affiche, mais dès que je passe la souris dessus celà déclenche la fonction pop() et le menu disparait.
Celà ne se produit pas si le doctype est html. Ou si je sors le script du <td> </td>.


Pourtant le code original de editeurjavascript marche très bien dans un tableau et avec un doctype xhtml, et la fonction pop est bien présente :

Code : Tout sélectionner

<script type="text/javascript"> bgcolor='#006699'; bgcolor2='#6699CC'; document.write('<style type="text/css">'); document.write('.popper { POSITION: absolute; VISIBILITY: hidden; z-index:15; left:99px ') document.write('#topgauche { position:absolute; z-index:10; }') document.write('A:hover.ejsmenu {color:#FFFFFF; text-decoration:none;}') document.write('.ejsmenu {color:#FFFFFF; text-decoration:none;}') document.write('</style>') document.write('<div style="position:relative;height:25"><DIV class=popper id=topdeck></DIV>'); /* SCRIPT EDITE SUR L'EDITEUR JAVACSRIPT http://www.editeurjavascript.com */ /* LIENS */ zlien = new Array; zlien[0] = new Array; zlien[1] = new Array; zlien[0][0] = '<A HREF="t1al" CLASS=ejsmenu>t1a</A>'; zlien[0][1] = '<A HREF="t1bl" CLASS=ejsmenu>t1b</A>'; zlien[1][0] = '<A HREF="t2al" CLASS=ejsmenu>t2a</A>'; zlien[1][1] = '<A HREF="t2bl" CLASS=ejsmenu>t2b</A>'; if(document.getElementById) { skn = document.getElementById("topdeck").style skn.left = 99; } function pop(msg,pos) { skn.visibility = "hidden"; a=true skn.top = pos; var content ="<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 WIDTH=150><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1>"; pass = 0 while (pass < msg.length) { content += "<TR><TD BGCOLOR="+bgcolor+" onMouseOver=\"this.style.background='"+bgcolor2+"'\" onMouseOut=\"this.style.background='"+bgcolor+"'\" HEIGHT=20><FONT SIZE=1 FACE=\"Verdana\">&nbsp;&nbsp;"+msg[pass]+"</FONT></TD></TR>"; pass++; } content += "</TABLE></TD></TR></TABLE>"; document.getElementById("topdeck").innerHTML = content; skn.visibility = "visible"; } function kill() { if(document.getElementById) skn.visibility = "hidden"; } document.onclick = kill; if(document.getElementById) { document.write('<DIV ID=topgauche><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 WIDTH=100 HEIGHT=40><TR><TD><TABLE CELLPADING=0 CELLSPACING=1 BORDER=0 WIDTH=100% HEIGHT=40>') document.write('<tr><TD WIDTH=100 ALIGN=center BGCOLOR='+bgcolor+' onMouseOver="this.style.background=\''+bgcolor2+'\';pop(zlien[0],0)" onMouseOut="this.style.background=\''+bgcolor+'\'" CLASS=ejsmenu><FONT SIZE=1 FACE="Verdana">t1</FONT></TD></tr>') document.write('<tr><TD WIDTH=100 ALIGN=center BGCOLOR='+bgcolor+' onMouseOver="this.style.background=\''+bgcolor2+'\';pop(zlien[1],20)" onMouseOut="this.style.background=\''+bgcolor+'\'" CLASS=ejsmenu><FONT SIZE=1 FACE="Verdana">t2</FONT></TD></tr>') document.write('</TABLE></TD></TR></TABLE></DIV>') } document.write('</div>'); </script>

C'est en rapport avec les images je pense de la dernière partie. Car quand je mélange les 2 code, ceux qui ont des fond coloré avec un bgcolor reste affiché, et quand c'est une image, elle disparait.

que faire?

Merci