Bonjour à tous,
J'essaie en ce moment de créer un wysiwyg, je présume que c'est un sujet récurrent et peu utile contenu du nombre d'éditeur déjà disponible sur l'internet, mais toutefois intéressant.
J'ai comment à faire ceci - javascript:
html:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 wysiwyg.prototype.addCallback = function() { var object = this; for(var i in this.commands_edit) { this.getNod(i).onclick = function() { object.editText(); }; } } wysiwyg.prototype.editText = function() { var textarea = this.getNod('edit_'+this.name); var selection; var selection_start; var selection_end; var pre_str; var ap_str; var retour; textarea.focus(); var value = textarea.innerHTML; if(typeof textarea.selectionStart != 'undefined') { alert("ici"); selection_start = textarea.selectionStart; selection_end = textarea.selectionEnd; pre_str = value.substring(0 , selection_start); ap_str = value.substring(selection_end, textarea.textLength ); selection = value.substring(selection_start, selection_end); retour = pre_str + '<i>' + selection + '</i>' + ap_str; } this.getNod('edit_'+this.name).innerHTML = retour }
Quand je clic sur l'un des "span" je vais bien à la méthode editText mais "textarea.selectionStart" retourne "undefined".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <div id="wysiwyg"> <span id="g" class="g">g</span> <span id="i" class="i">i</span> <input id="description" type="hidden" value="" name="description"> <div id="edit_description" class="descrip" contenteditable="true" spellcheck="false"></div> </div>
Je me suis inspiré de plusieurs exemple du forum et d'internet pour arriver à ceci, je suis sous firefox4 mais rien à faire je ne vois d'où cela peut venir.
Merci à tous pour votre aide.
Partager