Mittwoch, 18. Februar 2009

JavaScript Injection für einen guten Zweck

Auf Arbeit muss ich meine Zeit Minutengenau mit einem selbst entwickelten Tool auf die einzelnen Tasks meiner Projekte buchen. Dieses Tool hat jedoch einen (gewollten) Bug, wenn man die Tasks vom Vortag nachträgt. Es gibt einen DatePicker, mit dem man das gestrige Datum auswählt und 3 Textfelder für Datum, Start und Ende des zu trackenden Tasks. Das Feld für das Datum wird bei jedem Request auf das aktuelle Datum gesetzt, auch wenn im DatePicker das gestrige ausgewählt ist. Zum Glück ist das Tool anfällig für JS Injection, was mir einen bequemen Einstiegspunkt für meinen Bugfix bietet. An Meinen Vornamen hänge ich also meinen Bugfix Code an: Alter Vorname: Richard Neuer Vorname: Richard<script language="JavaScript">Event.stopObserving(window, 'load');Event.observe(window, 'load', function() { if(document.getElementById('e_date')) {Event.observe($('day_task_beginT'),'focus',function(){var mydate=$('e_date').calendar_date_select.selected_date;$('day_task_date').value=(mydate.getDate() + '.' + (mydate.getMonth()+1) + '.' + mydate.getFullYear())})}});</script>
Dank Prototype ist es leicht ein passendes Event zu binden und das Aktualisieren des Datums-Textfelds auf das im DatePicker ausgewählte Datum zu automatisieren. Also liebe Webentwickler, passt auf, dass Ihr alle Ausgaben aus der Datenbank auch wirklich ordentlich quoted ;-)

Keine Kommentare:

  © Blogger template 'Morning Drink' by Ourblogtemplates.com 2008

Back to TOP