11548 sujets

JavaScript, DOM et API Web HTML5

Hello !

Je tourne en rond ...

Le code suivant fonctionne sous FF, mais pas sous IE (7), une personne possède une idée ?!?

Le problème provient de la ligne
document.getElementById('TR_modifiable').innerHTML = '<TD>@@@</TD>';

Mais je ne sais pas pourquoi !

HELP ! Smiley cligne
MAYDAY !!

Merci d'avance !


<SCRIPT language="JavaScript" type="text/javascript">
	
function modification() {

	var element = document.getElementById('table_modifiable'); // On récupère un tableau contenant les TR du TABLE 
	
	// Création du nouveau Noeud 
	var row = document.createElement('TR');
	var attr = document.createAttribute('id');
	attr.value = 'TR_modifiable';
	row.setAttributeNode(attr);

	//Recupération du Noeud "position" 
	var NodeListe = element.getElementsByTagName('TR'); 
	var position = NodeListe.item(1); 

	//Insertion 
	element.insertBefore(row,position);

	// plante sous IE ?!?!? @@@
	
	document.getElementById('TR_modifiable').innerHTML = '<TD>@@@</TD>';

	alert('Test réussi !');

}
   
</SCRIPT>

<TABLE border=1 id='table_modifiable'>
<TR><TD>Tableau de test</TD></TR>
</TABLE>

<SCRIPT language="JavaScript" type="text/javascript">
modification();
</SCRIPT>
Salut,
Dexterin a écrit :
document.getElementById('TR_modifiable').innerHTML = '<TD>@@@</TD>';
Sous IE, innerHTML est en lecture seule sur les tableaux (peut-être pas sur les <td>, à vérifier). Utilise les méthodes du DOM.
marcv a écrit :
Salut,
Sous IE, innerHTML est en lecture seule sur les tableaux (peut-être pas sur les <td>, à vérifier). Utilise les méthodes du DOM.


Ben justement, j'ai eu une idée en dormant (hé ouais, comme quoi cela me travaillait) et fait le test en modifiant le type de balise, ce matin et ... cela marche avec des TD et des DIV et des SPAN ... mais pas avec des TR !

Agrr...

Bon, je vais adapter mon code ! Mais quand même ! Satané IE... .-)
(quand c'est pas Firefox)
Il n'y a pas grand chose qui fonctionne avec des TR sous IE 6-7. Ça vaut aussi pour l'application de styles CSS par exemple.