MrPierre Posted October 13, 2010 Share Posted October 13, 2010 (edited) 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 ? Edited October 13, 2010 by MrPierre Link to comment Share on other sites More sharing options...
Ernestine Posted October 13, 2010 Share Posted October 13, 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à. Link to comment Share on other sites More sharing options...
MrPierre Posted October 16, 2010 Author Share Posted October 16, 2010 (edited) 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 Edited October 16, 2010 by MrPierre Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now