Javascript + innerHTML : comment afficher les attributs situés dans une sous-cha

Résolu
sergeburki Messages postés 3 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 8 mars 2010 - 3 nov. 2009 à 17:35
sergeburki Messages postés 3 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 8 mars 2010 - 5 nov. 2009 à 19:01
J'essaye d'afficher via javascript une fenêtre avec du contenu issu d'une base de données.

Le contenu peut être une simple chaîne de caractères, mais aussi du texte riche, par exemple ceci :

Planification détaillé sera fournie vers mi-septembre. le chef de projet indique :

<li>Décision prise de prendre l'outil Outlook.
<li>Charge développement sécurité : env. 20 JH
<li>Scope : contacts, R visite, outil profiling sociétés</li>

Si j'affiche ce contenu avec un response.write asp, tout s'affiche très bien, y compris le gras, le souligné et le fond;

Mais parfois je désire afficher ceci sans passer par le serveur. J'ai donc sauvegardé le champ dans une variable javascript, que j'aimerai utiliser avec une fonction activée par un lien :

var newWindow = window.open("","newWin" + sId,"location,noscrollbars,resizable=yes,width=900,height=600");
newWindow.focus();
var newDoc=newWindow.document;
newDoc.title="Generated Window";
newDoc.bgColor="#FFFFFF";
newDoc.fgColor="#000000";
newDoc.body.innerHTML="

";
var loopDiv =newDoc.getElementById("looper");
if (situationjava[sId] != "") {
alert(situationjava[sId]);
loopDiv.innerHTML="" + dateraKey[sId] + ":

" + situationjava[sId].replace(/\r\n/g,'
');
}

La variable contient tout (un alert le montre bien).

Les sauts de ligne sont OK. Mais la fenêtre ne traite pas les attributs contenus dans le champ (il n'affiche pas le souligné, ni les couleurs du texte, ni le fond du texte).

J'ai essayé de passer par DOM, ou document.write, mais c'est la même chose.

Pourquoi les attributs sont-ils oubliés en javascript et actifs en asp ?

Comment faire que le javascript affiche la même chose que l'asp/html ?

Est-ce que qqn a une idée ?? merci beaucoup

2 réponses

sergeburki Messages postés 3 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 8 mars 2010
5 nov. 2009 à 19:01
Merci pour les questions car le fait de répondre et reproduireles 3 cas m'a fait trouvé la réponse. je la paratge avec vous :

Le tout se faite en 2 phases :

phase 1 :
l'asp va lire les données de la DB et affiche les 300 premiers caractères de la situation via un response.write.
Dans cette phase, tout s'affiche parfaitement bien.
En même temps, le programme asp stocke le contenu de la situation dans une variable javascript après avoir remplacé les
par les caractères correspondants.

Phase 2 : un clic sur un lien ouvre en javascript une fenêtre qui présente la date à laquelle la situation a été enregistrée (extraite aussi de la db via une table initialisée par l'asp) suivie de la situation.

Le code donnait :

Phase 1 : on stocke dans une tableau javascript :

response.write "<script>situationjava[" & iligne & "]='" & ssituationgeneralejava & "';</script>"

Mais si le texte situationgenerale comportait des guillemets, cela faisait planter l'asp. D'où une ligne juste avant avec :


ssituationgeneralejava = replace(replace(replace(ssituationgenerale,"'","`"),vbcrlf,"\r\n"),"""","""""")

qui doublait le guillemet pour le stocker proprement.

Phase 2 : le code mis dans le premier message.

C'était parfait pour l'affichage, mais pas dans le cas des guillemets des fonts, qui se faisaient doubler (et donc étaient ignorées) !

Et cela je l'ai vu seulement en copiant le contenu des variables dans le mail....

Le tout a été résolu en transformant les guillemets la 1ère fois en une chaîne quelconque mais qui ne devrait pas se trouver en français (j'ai pris üöä), puis en retransformant dans la procédure javascript d'affichage de la fenêtre.

situationjava[sId].replace(/\r\n/g,'
').replace(/üöä/g,"'") . les guillemnts sont devenus des apostrophes, mais c'est pas important ici.

Après cela, ça marche avec un innerHTML et un document.write mais pas avec un appendchild.

Encore merci de votre contribution; cela faisait 4 heures que je tournais en rond à chercher d'autres explications ou d'autres techniques !
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
4 nov. 2009 à 05:54
Bonjour,
asp crée du html, ce n'est pas lui qui affiche
>>La variable contient tout
quelle variable ?
>>J'ai essayé de passer par DOM, ou document.write,
>>mais c'est la même chose.
euh... et sur l'exemple ? c'est fait comment ?
dateraKey[sId] c'est ça ?
ça contient quoi ?
Cordialement [mon Site] [M'écrire] Bul
0
Rejoignez-nous