CSS.getElementsBySelector() v1.0.3

31 08 2008

Μια μικρή ενημέρωση ότι το μικρούλι js library μου έφτασε αισίως στην έκδοση 1.0.3 με τη διόρθωση ενός σημαντικού bug.

Θα το βρείτε στο γνωστό μέρος. ;)





CSS.getElementsBySelector() v1.0.2

22 08 2008

Μια μικρή ενημέρωση ότι το μικρούλι js library μου έφτασε αισίως στην έκδοση 1.0.2 με 3 νέους υποστηριζόμενους selectors, 2 νέες functions και ένα bugfix.

Θα το βρείτε στο γνωστό μέρος. ;)





CSS.getElementsBySelector() v1.0.1

30 07 2008

Καταρχάς ντοντ γουόρι, δεν πρόκειται να μετατραπεί το blog σε dev blog του εν λόγω script επειδή 2 συνεχόμενα ποστ το αφορούν :P

Απλά δεν έτυχε να βρω κάτι άλλο αξιόλογο να γράψω στο ενδιάμεσο και να έχω και όρεξη να γράψω για αυτό :P .

Λοιπόν, ενημερώνω if anyone is interested ότι έκανα ένα “update” στο εν λόγω script, διορθώνοντας 2 bugs και προσθέτοντας 2 νέες μεθόδους (CSS.setEvent() και Array.prototype.iterate()). Θα το βρείτε στη σελιδούλα του.

Και ένα trackback για όσους παρακολουθούν ή θα παρακολουθήσουν στο μέλλον μόνο το προηγούμενο ποστ (λέμε τώρα): trackback

PS: Προσωπικά πάντως, οι μέρες που αφιέρωσα να το γράψω έχουν ήδη αποδώσει, μιας και έκανε τη δουλειά μου πολύ ευκολότερη. Ακόμα και κανείς άλλος να μην το χρησιμοποιήσει, έχει εκπληρώσει το σκοπό του. :)





getElementsByCSSSelector() and more…

21 07 2008

H JavaScript διαθέτει τις ενσωματωμένες μεθόδους getElementById() και getElementsByTagName() (και σε κάποιους browsers επίσης την getElementsByClassName()). Παρόλο που οι μέθδοδοι αυτές επαρκούν για τις περισσότερες καθημερινές απαιτήσεις των scripts σας, ορισμένες φορές χρειάζεται να επιλέξετε στοιχεία χρησιμοποιώντας πιο εξειδικευμένα κριτήρια. Οι επιλογείς CSS προσφέρουν αυτή τη δύναμη, αλλά η JavaScript δεν διαθέτει μέθοδο getElementsByCSSSelector().

Μιας και είχα παρατηρήσει να χρειάζομαι συχνότατα κάτι τέτοιο, τις τελευταίες ημέρες τις αφιέρωσα γράφοντας το και ευελπιστώ να μου γλιτώσει περισσότερες εργατώρες από αυτές που αφιέρωσα για να το γράψω. Μη με ρωτήσετε γιατί δεν χρησιμοποίησα κάποιο framework: Αφενός μεν δεν ήθελα να φορτώσω ολόκληρο επιπλέον framework μόνο και μόνο για αυτό, αφετέρου μου αρέσει να γνωρίζω τι κώδικας υπάρχει στη σελίδα, όσο είναι εφικτό.

Μαζί με αυτό θα βρείτε και διάφορες ακόμα βοηθητικές συναρτήσεις που θεωρώ αρκετά πιθανό να σας χρησιμεύσουν. Έχω φτιάξει μια μικρή σελιδούλα για την παρουσίαση του, την οποία θα βρείτε στο http://code.e-steki.gr/cssselect/ . Θα με ενδιέφερε να μάθω τις σκέψεις για αυτό, όποιες και να είναι. :-)

ΥΓ: Ο τίτλος είναι ελαφρώς παραπλανητικός: Η συνάρτηση μου δεν ονομάζεται getElementsByCSSSelector() αλλά CSS.getElementsBySelector().





Πολλαπλή δυναμική εισαγωγή και εκτέλεση script tags

14 06 2008

Τις προάλλες αντιμετώπισα ένα ιδιαίτερα ενοχλητικό και εκνευριστικό πρόβλημα που με απασχόλησε για 2 μέρες μέχρι που μόλις πριν λίγο το έλυσα και αποφάσισα να μοιραστώ μαζί σας τη λύση στην οποία κατέληξα.

Ας πάρουμε τα πράγματα από την αρχή. Το πρόβλημα ήταν το εξής: Σε ένα div εντός μιας σελίδας, φόρτωνα με AJAX κάποιο κομμάτι HTML από άλλη σελίδα του site (το ποιό ακριβώς εξαρτείτο από την επιλογή του χρήστη). Το κομμάτι HTML αυτό, ενίοτε περιείχε και <script> tags, είτε προς εξωτερικό js αρχείο, είτε inline, είτε διάφορων ειδών, τα οποία έπρεπε να τρέξουν με τη σειρά που υπήρχαν στην HTML για να λειτουργεί σωστά. Αρχικά σκέφτηκα να τα παίρνω με τη σειρά και να τα εισάγω με DOM manipulation στο head της σελίδας, λύση που προτεινόταν σε αρκετά σχετικά άρθρα. Δεν είχα υπολογίσει όμως κάτι: Ο browser δεν θα καθόταν να περιμένει να φορτώσει το καθένα τους, όπως όταν φορτώνει μια σελίδα. Θα μπορούσα να περιγράψω τη συμπεριφορά του σαν τη συμπεριφορά του ΙΕ στην ιδιότητα defer ενός script, μόνο που το έκαναν όλοι οι browsers, χωρίς να υπάρχει καμία ιδιότητα defer στα εν λόγω! Διαβάστε την συνέχεια του άρθρου »





Τα συχνότερα (βλάκώδη) συντακτικά λάθη στην PHP

7 06 2008

Είναι χαζά, αλλά μπορεί να φάμε πολύ χρόνο ψάχνοντας να βρούμε που ακριβώς κάναμε τη βλακεία αυτή τη φορά. Όταν τελικά το βρούμε, μας έρχεται να πνίξουμε τον εαυτό μας – αν μπορούσαμε. Όση εμπειρία και να έχει κανείς, ποτέ δεν γλιτώνει από τα βλακώδη parse errors, μιας και πάντα θα έρθει η στιγμή που θα φύγει το μυαλό σου αλλού και θα την κάνεις την πατάτα, οπότε σκέφτηκα να κάνω μια λίστα από τα συχνότερα (τουλάχιστον αυτά που κάνω εγώ συχνότερα), μήπως χρησιμεύσει σε μένα ή σε άλλους ως checklist. ;)

  1. Παράλειψη του $ πριν κάποιο όνομα μεταβλητής
  2. Παράλειψη του ; στο τέλος γραμμής
  3. Παράλειψη της τελευταίας παρένθεσης (ειδικά σε if() που έχει μέσα συναρτήσεις)
  4. Παράλειψη του “function” πριν τη δήλωση κάποιας συνάρτησης
  5. Παράλειψη κάποιου closing brace (})
  6. { ή ( αντί για [
  7. } ή ) αντί για ]
  8. Παράλειψη του concatenation operator (.) ή + αντί για αυτόν (ειδικά αν προηγουμένως γράφατε σε κάποια java-οειδή γλώσσα)

Εσείς τι συντακτικά λάθη κάνετε συχνότερα; Αν ξέχασα κάτι, πείτε μου να το προσθέσω, ώστε να φτιάξουμε μια πραγματικά πλήρη λίστα! :D