11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je cherche à remplacer le innerHTML par son équivalent DOM.
SUite à quelques recherche, j'ai utilisé le code suivant :


function ejs_scroll_start()
	{
	if(ejs_scroll_mode == 1)
		{
		ejs_scroller_haut = "ejs_scroller_1";
		ejs_scroller_bas = "ejs_scroller_2";
		ejs_scroll_mode = 0;
		}
	else
		{
		ejs_scroller_bas = "ejs_scroller_1";
		ejs_scroller_haut = "ejs_scroller_2";
		ejs_scroll_mode = 1;
		}
	ejs_scroll_nb_message = ejs_scroll_message.length-1;
	if(ejs_scroll_actuel == ejs_scroll_nb_message)
		ejs_scroll_suivant = 0;
	else
		ejs_scroll_suivant = ejs_scroll_actuel+1;
	if(document.getElementById){
		//document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
		longueurCible = document.getElementById(ejs_scroller_bas).firstChild.length;
		document.getElementById(ejs_scroller_bas).firstChild.replaceData(0, longueurCible, ejs_scroll_message[ejs_scroll_suivant]);
	}
	ejs_scroll_top = 0;
	if(document.getElementById)
		setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)
	}

function ejs_scroll_action()
	{
	ejs_scroll_top -= 1;
	document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top+"px";
	document.getElementById(ejs_scroller_bas).style.top = (ejs_scroll_top+ejs_scroll_hauteur)+"px";
	if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
		setTimeout("ejs_scroll_action()",10)
	else
		ejs_scroll_stop()
	}

function ejs_scroll_stop()
	{
	ejs_scroll_actuel = ejs_scroll_suivant;
	ejs_scroll_start()
	}
	
function d(texte)
	{
	document.write(texte);
	}


Cependant, j'ai le droit à une jolie erreur dans firebug :
a écrit :
document.getElementById(ejs_scroller_bas).firstChild.replaceData is not a function

Modifié par manuporquet (21 Mar 2008 - 15:49)
merci pour ta réponse.
il n'y a pas d'autre solution?
je vais me pencher sur prototype mais je suis preneur s'il y a autre chose.
Je n'en connais pas d'autre. Mais si tu n'utilises prototype que pour cette fonction, cela ne sert à rien de l'utiliser. Il vaut mieux que tu te penches sur une autre solution.
baf là j'ai une doc DOM PHP et de l'autre coté un doc DOM javascript. je suis debutant en DOM.

je crois comprendre avec les deux que replaceData est plutôt un truc qui est reconnu par les objets de type:

DOMCharacterData.

et je lis que ce truc

a écrit :
Represents character data in an XML document.


donc que du texte non? alors que le html lui peut contenir des noeuds DOM.

nop?
Modifié par CPascal (21 Mar 2008 - 17:01)