MrPierre Posté 13 Octobre 2010 Posté 13 Octobre 2010 (modifié) Salut les javamis Savez-vous s'il est possible de piloter des fonctions du navigateur via du code html ou js (ou autre) ? Moi par exemple j'aimerais utiliser la fonction "annuler frappe" (ctrl+z) que propose le menu "édition" de la plupart des navigateurs. Des idées là dessus ? Modifié 13 Octobre 2010 par MrPierre
Ernestine Posté 13 Octobre 2010 Posté 13 Octobre 2010 Salut, Bonne question... Javascript ne permet pas d'avoir un gros contrôle sur le navigateur lui-même, ce serait la porte ouverte à de gros problèmes de sécurité. Pour ton cas précis d'une fonction "annuler", la réponse est oui c'est possible. La preuve : quand tu écris une réponse sur le forum du hub, en haut à droite tu as un petit bouton (flêche demi-tour) qui permet d'annuler une action, et un autre qui permet de la rétablir. Par contre je ne sais pas comment ça fonctionne au niveau du code. Il y a des pluggins jquery pour des éditeurs Wysiwyg, par exemple : http://elrte.org/ qui propose justement cette fonctionnalité... à creuser de ce côté-là.
MrPierre Posté 16 Octobre 2010 Auteur Posté 16 Octobre 2010 (modifié) Salut, j'ai finalement réussi à créer une petite fonction vilainement codée mais qui marche : Voilà pour les deux petits boutons : <img src=../Icones/previous.png id="back" width=23> <img src=../Icones/next.png id="forward" width=23><br><textarea id=textarea rows=10 cols=7></textarea> ...et la fonction : // fonction Previous et Next qui emploient le DOM pour emuler un ctrl+z et un ctrl+maj+zfunction CancelableTextarea(textarea) { if (!textarea) { alert("CancelableTextarea needs a textarea as first paremeter!"); } var currentlocation = this, values = this.values = [textarea.value], valueId = this.valueId = 0; this.textarea = textarea; textarea.onkeyup = function() { if (this.value !== currentlocation.values[currentlocation.valueId]) { if (this.value === currentlocation.values[currentlocation.valueId - 1]) { --currentlocation.valueId; } else if (this.value === currentlocation.values[currentlocation.valueId + 1]) { ++currentlocation.valueId; } else { currentlocation.values = currentlocation.values.splice(0, currentlocation.valueId + 1); currentlocation.values.push(this.value) currentlocation.next(); } } };}CancelableTextarea.prototype.previous = function() { if (this.valueId > 0) { --this.valueId; this.textarea.value = this.values[this.valueId]; }};CancelableTextarea.prototype.next = function() { if (this.valueId < this.values.length - 1) { ++this.valueId; this.textarea.value = this.values[this.valueId]; }};// Créé les boutons dynamiquement, leur ajoute une fonction au click et finalement les ajoute au body var test = new CancelableTextarea(document.getElementById('textarea')); var back = document.getElementById('back'); var forward= document.getElementById('forward'); back.onclick = function() { test.previous(); }; forward.onclick = function() { test.next(); }; Le code est pas top mais ça marche (il reste des variables inutiles, vous ferez le ménage Modifié 16 Octobre 2010 par MrPierre
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant