cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012
-
14 janv. 2009 à 14:59
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
22 janv. 2009 à 17:24
Bonjour tout le monde,
Dans le cadre de développement d'un site web, j'aimerais tranformer une div en textarea, pour cela j'utilise le javascript car je ne dispose d'aucune connaissance en java.
Le but finale est de pouvoir disposer d'une zone de texte éditable semblable à celle qui permet de poster ce même message, avec une mise en forme directement visible lors de l'édition.
Pour ce faire j'ai commencé à réaliser quelques fonctions (L'ajout de texte, l'insertion du code, les retours à la ligne, backspace et suppr) mais là ou j'aurais besoin de votre aide si préciseuse c'est pour récupérer la position du curseur au clique pour pouvoir insérer du texte au milieu de la zone éditable par exemple.
J'ai essayé d'utiliser les fonctions de createRange() et getCaret (ou quelque chose de semblable) mais cela me retourne toujours "Undefined"
Si je ne suis pas suffisement clair, n'hésitez pas à me demander de détailler d'avantage.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 14 janv. 2009 à 15:07
bonjour,
>>j'aimerais tranformer une div en textarea,
textarea.value=div.innerHTML
>>Le but finale est de pouvoir disposer d'une zone de texte éditable semblable
>>à celle qui permet de poster ce même message
une saisie wysiwyg ? alors ton div ça va être exclusif IE.
pour être compatible, utiliser un iframe
un ch'tiot exemple ici mais foultitude d'autres partout
>>pour pouvoir insérer du texte au milieu de la zone éditable
si c'est dans la zone "wysiwyg", regarde mon exemple
si c'est dans le textarea, regarde dans les sources de PetoleTeam,
il y a un script généralisé nickel.
Cordialement
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 14 janv. 2009 à 15:15
Merci beaucoup pour ces informations, il s'agit effectivement d'un systeme wiswig pour des personnes ne connaissant pas l'html =)
Je vais donc utiliser les iFrames comme tu me l'as conseillé, et je vais aussi de ce pas regarder ton exemple, je reviendrais par ici si j'ai besoin d'éclaircir des informations et que je ne trouve pas satisfaction sur les moteurs de recherches.
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 14 janv. 2009 à 16:46
Encore merci pour ce code qui est exactement ce que je cherchais, je ne sais pas pourquoi, je m'étais mis en tête que les iFrames en plus d'être génantes pour le référencement, étaient compliqué d'utilisation .. A ce que je vois je me suis un peu trop basé sur les préjugés...
D'ailleurs j'aimerais avoir quelques précisions sur la fonction execCommand()
Si j'ai bien compris, cette commande accepte entre 1 et 3 paramètres, le premier étant le nom de la fonction a executer. Mais où puis-je trouver la liste des commandes préexistantes ?
J'aimerais aussi ajouter un bouton pour insérer un tableau (en html) avec avant, une fenetre qui demande le nombre de lignes et de colones à insérer. Existe-t-il là aussi, pour ma plus grande surprise, une fonction qui permet de faire cela ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 14 janv. 2009 à 18:40
>>en plus d'être génantes pour le référencement, étaient compliqué d'utilisation
ni l'un ni l'autre
dans un cas comme ici, mais pas seulement.
>>Mais où puis-je trouver la liste des commandes préexistantes ?
presque tout est dans le script
après le mieux c'est une moteur de recherche : regarde ici ;o)
>> pour insérer un tableau (en html)
ça existe dans execCommand !
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 15 janv. 2009 à 16:49
Merci, mais j'ai effectivement fais quelques rechreches sur ce fameux moteur de recherche et j'arrive à m'en sortir.
Maintenant un autre problème se présente face à moi.
Lors du chargement de la page contenant cette iframe je crée une variable php du nom de $contenu
Celle-ci fonctionne comme il se doit (j'ai vérifié)
mais lorsque je veux au chargement de la page affichier le contenu de cette variable dans la iframe, elle reste vide.. Ou presque, car lorsque j'effectue un clique droit sur la page et que je choisis "Afficher le code source" il s'avère que mon texte est bien présent dans ma iframe.
Comment se fait-il qu'il ne soit alors pas visible ?
Sachant que l'affichage se fait lors de l'appelle de la fonction initial() du code précédement cité.
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 16 janv. 2009 à 10:15
En faite c'est bien plus compliqué qu'il ne parait.
Parce que même en mettant le code directement donc par exemple : test le problème est le même, le code source est ok, mais le contenu ne s'affiche pas. En revanche lorsque je fais un clique droit sur la iframe pour afficher la source voici ce qui apparait :
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 16 janv. 2009 à 11:02
ben oui ! pas du à quoi que ce soit d'autre qu'à l'utilisation la balise !
ce que tu met entre et , c'est pour
afficher lorsque le navigateur ne supporte pas les [I]Frame.
c'est ce qu'il y a dans le src qui est affiché
ou ce qu'on met dans le Champ.body.innerHTML
( Champ est différent entre IE et FF )
[mon Site] [M'écrire] Bul
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 16 janv. 2009 à 11:15
Pour le moment voilà ou j'en suis, à la fin de la fonction initial()
je charge le contenu ($contenu) dans la textarea, jusque là ok.
Après j'ai fais cela :
var tmp=document.getElementById("apercu_area");
Champ.body.innerHTML=tmp.value;
sachant que l'élément qui a l'id "apercu_area" c'est ma <textarea>
mais quand j'affiche les erreurs de script il me dit : "Champ.body est indéfini" alors que si je fais alert(Champ); cela fonctionne corrèctement, ma variable est bien définie.
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 16 janv. 2009 à 14:10
Ok, merci bien dans ce cas je vais revoir mon code en me basant sur celui-là, on verra bien ce qu'il en ressortira. Et comme d'ab, si j'ai encore une erreur je reviendrais ici
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 17 janv. 2009 à 16:37
Bonjour,
...une autre approche pour l'accés au
contenu dune IFRAME, sur les différents navigateurs...
var O_iFrame = document.getElementById(
'ID_IFRAME').contentWindow.document;
pour reprendre l'exemple de
TheBul3 cela donne...
<html>
<head>
</head>
<textarea name ="txt"
id="txt">exemple</textarea>
<script type="text/javascript">
Retour à ton sujet...
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, Rien à faire, quand je fais alert(Champ.body);
ca me retourne : \"null\"
de la même manière un .innerHTML sur mon textarea me
renvoi le contenu, alors qu'un .value est
vide</td>
</td></tr></tbody></table>...n'inverses tu
pas simplement les réfèrences ?
;O)