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.
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 19 janv. 2009 à 16:41
Etant donné que la variable Champ fait référence à l'iframe et que je veux le contenu de celle-ci il faut bien que j'utilise Champ.body l'ordre est donc corrècte.
Je vais essayer de prendre vos codes séparément pour voir si cela fonctionne ou non.
cs_Dj Nam
Messages postés26Date d'inscriptiondimanche 29 octobre 2006StatutMembreDernière intervention 1 avril 2012 19 janv. 2009 à 17:22
Evidement je suis allé un peu trop vite ...
Effectivement le problème venait de cette ligne, mais il reste sur cette ligne car si j'inverse l'ordre des instructions le texte s'affiche,
et lorsqu'arrive cette même instruction, il est à nouveau effacé.
Comment puis-je faire pour éviter cela ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 20 janv. 2009 à 10:01
le souci uniquement avec IE ( enfin.. IE8 chez chez moi !)
pas expliqué, mais en attendant.... un ch'tiot setTimeout
des plus experts devraient te dire why et comment faire fonctionner
sans ce setTimeout... disons curieux
j'ai déjà eu le même phénomène avec FF (2) dans d'autres circonstances.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 20 janv. 2009 à 20:16
Bonjour,
l'explication, enfin une amorce, concernant le setTimeout est que IExplorer détruit le contenu de l'objet et il lui
faut donc un laps de temps pour le recréer.
exemple pour visualisation :
<html>
<head>
</head>
<textarea name = "txt"
id = "txt">exemple</textarea>
<script type="text/javascript">
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 22 janv. 2009 à 11:44
alors si PetoleTeam nous dit :
...setTimeout incontournable avec une IFRAME...
guère d'autres possibilités pour palier à ce dysfonctionnement,
si dysfonctionnement il y a, d'IE...
[mon Site] [M'écrire] Bul
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 22 janv. 2009 à 17:24
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, ... setTimeout incontournable avec une
IFRAME...</td>
</td></tr></tbody></table>dans ce
contexte avec les méthodes utilisées.
reprenons l'exemple ci dessus mais
en changeant la technique d'écriture
<html>
<head>
</head>
<textarea
name "txt" id "txt">exemple</textarea>
<script
type="text/javascript">
window.onload = function(){
var
O_iFrame = document.getElementById( 'Saisie').contentWindow.document;
O_iFrame.designMode='On';
//--
Utilisation des methodes open, write et close
</html>
...pas de
problème constaté, dans ce cas avec IExplorer ,
de par la méthode open, le setTimeout devient implicite.
Remarque :
Il suffit de mettre un alert( O_iFrame.firstChild.nodeName); pour voir que
le document est bien un document HTML, même si l'on n'a pas rajouté les balises
qui vont bien.
<table bgcolor ="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, ...palier à ce dysfonctionnement,
si
dysfonctionnement il y a,
d'IE...</td>
</td></tr></tbody></table>Il ne
s'agit que d'une façon différente de gérer ce changement d'état, l'IFRAME
n'étant, à ma connaissance, pas fait pour cela au départ.