11548 sujets

JavaScript, DOM et API Web HTML5

Salut à tous. Je cherche une piste pour "éxécuter" du code CSS en javascript.

En gros je récupère une variable qui va contenir par exemple


<b>i love alsacreations</b>


et lorsque je l'écris dans mon contenu (je l'écris de cette manière) :


test = document.createTextNode(unescape(eval(id_di+"_haut")));
test2 = document.createTextNode(unescape(eval(id_di+"_bas")));
var inst = tinyMCE.getInstanceById('t1');
var inst2 = tinyMCE.getInstanceById('t2');
var bud = tinyMCE.getInstanceById('t1').getBody();
var bud2 = tinyMCE.getInstanceById('t2').getBody();
while ( bud.hasChildNodes() ) {
	bud.removeChild( bud.firstChild );
}
while ( bud2.hasChildNodes() ) {
	bud2.removeChild( bud2.firstChild );
}
bud.appendChild(test);
bud2.appendChild(test2);


la variable en question c'est celle ci :

unescape(eval(id_di+"_haut"))


Et au lieu de m'écrire I love alsacreations il m'écrit <b>I love alsacreations</b>

Une idée ?

Rude
Modifié par ffwrude (12 Jun 2007 - 10:41)
Je comprend pas trop ton code, mais cela vient peut etre de Tiny MCE non ? Tu écris ta variable dans un textarea géré par tinyMCE?
C'est exact.

En fait pour détailler un peu plus. Je créer des variables php dans un fichier et ce dynamiquement via tinymce(sans ajax).

Ensuite lorsque je veux rouvrir ma fenetre avec tinyMCE, il m'écrit le texte équivalent.

en gros si j'écri A dans la variable 1. J'ai une variable php 1 qui contient A dans un fichier. Et lorsque je rouvre ma page je dois avoir écris A dans le cadre tinymce si je séléctionne la variable 1 (sisi en relisant plusieurs fois c'est clair).

Bref. Le code ci-dessus permet d'écrire en JS ma variable PHP DANS le cadre de TinyMCE.

Tu me diras... Pourquoi ne pas écrire ca directement en PHP. Et bien ... La voix des programmeur est impénétrable. Disons que j'ai créer un systeme qui ne me permet pas de le faire et je voudrai éviter de tout recommencer.

Rude
genre quand tu rouvres dans ta page tu fais un truc du genre
<textarea>$variable</textarea> avec $variable = "<b>blablab</b>", c'est ça ?
Bah si je l'avait fait en php ca serait ca.

Mais la ... l'écriture de la variable dans le textarea c'est le bloc de code de mon premier post.

Mais en gros oui dans le textarea il m'écrit <b>blabla</b>

Disons que ton code est l'équivalent du mien.

AHHH j'ai oublié. getBody() est quelque chose de propre à tinymce (sauf erreur de ma part).
Modifié par ffwrude (12 Jun 2007 - 10:29)
Pourquoi t'essaie pas un truc du genre


<textarea id="texttest" name="test">

</textarea>


et dans ton code JS:


vartext =document.getElementById("texttest");
texttest.innerHTML  = var //var c'est <b>blabla</b>


Je suis pas trop expert en javascript mais bon on sait jamais ! Smiley cligne
Modifié par ashesheart (12 Jun 2007 - 10:31)
Ah bah j'ai mon collègue qui est arrivé et ... il à trouver. Et je me sens con ... très ... lol

Il fallait remplacer


test = document.createTextNode(unescape(eval(id_di+"_haut")));
test2 = document.createTextNode(unescape(eval(id_di+"_bas")));
var inst = tinyMCE.getInstanceById('t1');
var inst2 = tinyMCE.getInstanceById('t2');
var bud = tinyMCE.getInstanceById('t1').getBody();
var bud2 = tinyMCE.getInstanceById('t2').getBody();
while ( bud.hasChildNodes() ) {
	bud.removeChild( bud.firstChild );
}
while ( bud2.hasChildNodes() ) {
	bud2.removeChild( bud2.firstChild );
}
bud.appendChild(test);
bud2.appendChild(test2);


par


document.getElementById('t1').innerHTML = "";
document.getElementById('t2').innerHTML = "";
var inst = tinyMCE.getInstanceById('t1');
var inst2 = tinyMCE.getInstanceById('t2');
var bud = tinyMCE.getInstanceById('t1').getBody();
var bud2 = tinyMCE.getInstanceById('t2').getBody();
while ( bud.hasChildNodes() ) {
	bud.removeChild( bud.firstChild );
}
while ( bud2.hasChildNodes() ) {
	bud2.removeChild( bud2.firstChild );
}
bud.innerHTML = unescape(eval(id_di+"_haut"));
bud2.innerHTML = unescape(eval(id_di+"_bas"));


Merci en tout cas de ta solicitude.
Modifié par ffwrude (12 Jun 2007 - 10:41)