Aller au contenu

Fonction non accessible par IE 6 et 7 (Win XP) et Safari 3 (Mac et Windows) (Object attendu)


josiasseb

Sujets conseillés

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=&quot;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

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...