josiasseb Posté 10 Janvier 2008 Posté 10 Janvier 2008 Bonjour, J'ai un soucis avec une page en XHTML 1.0 Transitional. qui contient du code Javascript/CSS affichant ou masquant des lignes tr. Tout fonctionne bien excepté sous IE et Safari ou rien ne se passe, hormis l'erreur 'Objet attendu' super explicite sous Windows. Voici le début de mon code ainsi qu'une des lignes appelant la fonction js: <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>Quantinemo</title> <script type='text/javascript'> function showHide(class, ID) { var allHTMLTags = new Array(); var allHTMLTags=document.getElementsByTagName('tr'); for (i=0; i<allHTMLTags.length; i++) { if (allHTMLTags.className==class) { if (allHTMLTags.style.display == 'none') { allHTMLTags.style.visibility='visible'; allHTMLTags.style.position='static'; allHTMLTags.style.display='table-row'; ID.innerHTML='Hide'; } else { allHTMLTags.style.visibility='hidden'; allHTMLTags.style.position='absolute'; allHTMLTags.style.display='none'; ID.innerHTML='Show'; } } } } ... </script> ... <tr> <td colspan='10' align='center'><a href='#' onclick="showHide('Name-and-Time', this); return false;" id='show0'>Show</a> <i>Name and Time</i> category</td> </tr> <tr class="Name-and-Time" style="position:absolute; margin: 0 auto; display: none; visibility:hidden;"> <td align="center">base_file_name</td> ... Le debuggeur de script Microsoft me dit que la première erreur via de cette ligne: <script type='text/javascript'> Cette page fonctionne bien sous Linux (Firefox, Konqueror, Opera, Netscape) ainsi que sous Windows XP pour les mêmes navigateurs (Hors Konqueror). Une idée ? Merci -- Sébastien
josiasseb Posté 11 Janvier 2008 Auteur Posté 11 Janvier 2008 Je précise en plus que la page est bien W3C conforme (Ca veut pas dire grand chose pour IE mais quand même) et que la console javascript de Firefox ne renvoie aucune erreur.
iNCiTE Web Posté 11 Janvier 2008 Posté 11 Janvier 2008 Il y a 2 problèmes : - tu utilises "class" comme nom de variable, c'est un mot réservé donc ça met le bazar. A renommer en "classe" par exemple, tu n'as plus l'erreur Javascript - ensuite il y a un problème avec la propriété display "table-row", il ne vaut mieux pas l'utiliser. Remplaces allHTMLTags[i].style.display='table-row'; par allHTMLTags[i].style.display=''; et ça fonctionne...
josiasseb Posté 11 Janvier 2008 Auteur Posté 11 Janvier 2008 Il y a 2 problèmes :- tu utilises "class" comme nom de variable, c'est un mot réservé donc ça met le bazar. A renommer en "classe" par exemple, tu n'as plus l'erreur Javascript - ensuite il y a un problème avec la propriété display "table-row", il ne vaut mieux pas l'utiliser. Remplaces allHTMLTags[i].style.display='table-row'; par allHTMLTags[i].style.display=''; et ça fonctionne... Merci infiniment ! Je séchais complètement. Désormais la page fonctionne avec tous les navigateurs courants sous Linux, Mac et Windows (même avec IE 4 !) J'ai une autre question, concernant l'affichage des lignes inter-TR du tableau cachés que IE affiche quand même malgré les display:none et visibility:hidden. Je vais la poster sur la liste HTML/CSS, à moins que tu ne saches. Encore merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant