Συμβάντα (events) και χειριστές συμβάντων (event handlers) στη Javascript

Σχετικά έγγραφα
Πανεπιστήμιο Αιγαίου. Χειμερινό εξάμηνο. Σχολή Κοινωνικών Επιστημών Τμήμα Πολιτισμικής Τεχνολογίας Και Επικοινωνίας

Δικτυακά Πολυμέσα Ι: 2 η Εργασία. Να δημιουργήσετε μια HTML σελίδα η οποία να περιέχει μία φόρμα που να μοιάζει με αυτή της παρακάτω εικόνας:

1. Απαιτήσεις εργασίας

1. Απαιτήσεις εργασίας

JAVASCRIPT EVENTS. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Προγραμματισμός Ιστοσελίδων: Javascript II

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Javascript events. part 01

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

Τεχνικές εντοπισμού & διόρθωσης λαθών στη Javascript

WEB HTML. Web HTML MIDI. Web 5.1: HTML LAN

Γαβαλάς Δαμιανός

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΕΠΛ 012. JavaScripts

Πανεπιστήμιο Αιγαίου. Χειμερινό εξάμηνο. Σχολή Κοινωνικών Επιστημών Τμήμα Πολιτισμικής Τεχνολογίας Και Επικοινωνίας

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Συλλογή και Επεξεργασία Δεδομένων με Φόρμες

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Προγραμματισμός Παγκόσμιου Ιστού

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

2. Επιλέξτε την σωστή ετικέτα HTML που προσφέρει το μεγαλύτερο φόντο κειμένου. <head> <heading> <h6> <h1>

Εισαγωγή στην πληροφορική

Εισαγωγή στο πρόγραμμα Microsoft word 2003

Using Custom Python Expression Functions

Φόρµες σε HTML <FORM NAME = " όνοµα της φόρµας " TARGET = " συµβολικό όνοµα παραθύρου " ΑCTION = " URL διεύθυνση του εξυπηρετητή που θα αποσταλούν τα

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Επίλυση προβλήματος με Access

Σ η μ ε ι ώ σ ε ι ς γ ι α τ ο υ π ο λ ο γ ι σ τ ι κ ό φ ύ λ λ ο

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Γνωρίστε το Excel 2007

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Κάθε ένα κελί θα πρέπει να περιέχει ένα μόνο στοιχείο δεδομένων, για παράδειγμα το όνομα σε ένα κελί, το επίθετο σε άλλο κελί.

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Διαχείριση Επαγγελματιών Εταιρίας

Αλλαγή καταχωρητή ονομάτων χώρου

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Αριθμητική Ανάλυση

Προγραμματιστικό Περιβάλλον

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

1. (25%) Αναφέρετε πέντε (5) «καλoύς» κανόνες (πρακτικές) σχεδίασης web sites (όχι περισσότερες από δύο γραμμές για κάθε κανόνα)

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

ΠΛΗΚΤΡΟΛΟΓΙΟ. Η ελληνική διάταξη πλήκτρων είναι η παρακάτω (δεν υπάρχουν άλλες διατάξεις για το ελληνικό αλφάβητο):

Καταχώρηση ονομάτων χώρου

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Εργαστήριο 5

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

«Σύστημα ΔΕΠ» ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 1.1

2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ

Λίστες στο Scratch 2.0.

Σε αυτό το μάθημα θα ασχοληθούμε με τη βελτίωση της εμφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισμό όλων των αλλαγών τις οποίες επιθυμούμε να

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

ΔΕ10: Πληροφοριακά Συστήματα Διοίκησης IΙ Εργαστήριο # 2

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Ηλεκτρολογικό Σχέδιο στο AutoCAD

Εγχειρίδιο Χρήστη - Μαθητή

Οδοντιατρικό Λογισμικό

Παιχνίδια σε Javascript

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Χαρακτηριστικά και δυνατότητες της εφαρμογής σελ Εγκατάσταση της εφαρμογής σελ Εισαγωγή αρχείου εισόδου σελ. 7

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εφαρμογή Τελών Ακινήτων

ιαχείριση Πληροφοριών στο ιαδίκτυο

SPSS Statistical Package for the Social Sciences

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ

Συνοπτικός οδηγός χρήσης της πλατφόρμας ασύγχρονης τηλεεκπαίδευσης. Καθηγητή

Κωνσταντίνος Σιασιάκος, ρ Πληροφορικής

Διαδικασιακός Προγραμματισμός

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

ΟΔΗΓΙΕΣ ΧΕΙΡΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Bar Tender Ultra Lite

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Microsoft Excel Μέρος 2

Οδηγός χρήσης. Τι είναι το iekdeltalive.gr;

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΟΔΗΓΙΕΣ ΧΕΙΡΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ DYMO LABEL V.8

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 3

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

Transcript:

Πανεπιστήμιο Αιγαίου Σχολή Κοινωνικών Επιστημών Τμήμα Πολιτισμικής Τεχνολογίας Και Επικοινωνίας Δικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) Διάλεξη #9η: Javascript: Συμβάντα και Χειριστές Συμβάντων, Προσπέλαση φορμών (Διάβασμα/αλλαγή δεδομένων σε HTML φόρμες), πίνακες (arrays) Γαβαλάς Δαμιανός dgavalas@aegean.gr Χειμερινό εξάμηνο Συμβάντα (events) και χειριστές συμβάντων (event handlers) στη Javascript 1

Πως γράφαμε Javascript κώδικα μέχρι τώρα Μέχρι τώρα γράφαμε κώδικα Javascript ο οποίος εκτελούνταν χωρίς την παρέμβαση του χρήστη Ο χρήστης μπορούσε να εισάγει πληροφορία (μέσα από window.prompt παράθυρα) αλλά δεν μπορούσε να ορίσει ΠΟΤΕ θα εκτελεστεί ο κώδικας Ο κώδικας τοποθετούνταν ανάμεσα σε ετικέτες <script> Ο κώδικας που εκτελούνταν με το «φόρτωμα» του HTML αρχείου τοποθετούνταν στο <body> </body> τμήμα του HTML αρχείου Στο <head> </head> τμήμα του αρχείου τοποθετούσαμε Javascript συναρτήσεις (functions) που «καλούνταν» από τον κυρίως κώδικα που βρίσκονταν στο <body> </body> τμήμα Θα μάθουμε πως μπορούμε να γράψουμε Javascript κώδικα που θα εκτελείται μετά από ενέργεια του χρήστη Συμβάντα και Χειριστές συμβάντων Τι είναι ένα συμβάν (event): Κάτι που λαμβάνει χώρα όταν ο χρήστης (επισκέπτης της σελίδας) εκτελεί μια ενέργεια Παραδείγματα: Κλικ σε ένα πλήκτρο Αλλαγή των περιεχομένων ενός στοιχείου μιας φόρμας Μετακίνηση του δείκτη του ποντικιού πάνω από ένα σύνδεσμο (link) Χειριστής συμβάντος (event handler): Μια δεσμευμένη λέξη της Javascript που χρησιμοποιείται για το χειρισμό ενός συμβάντος, όταν αυτό λαμβάνει χώρα Με τους χειριστές συμβάντων εισάγουμε στις σελίδες μας ένα βαθμό διαλογικότητας & διαδραστικότητας (μια σειρά από εντολές εκτελούνται ως αποτέλεσμα μιας ενέργειας του χρήστη) 2

Που τοποθετούνται οι χειριστές συμβάντων Σε στοιχεία φορμών Σε ετικέτες δημιουργία συνδέσμων (<a>) Στην αρχική ετικέτα του HTML εγγράφου (<BODY>) HTML forms (φόρμες) Δομές της HTML που επιτρέπει στον χρήστη να εισάγει δεδομένα αλλά και στους «ιδιοκτήτες» ιστοσελίδων να συλλέγουν πληροφορίες από χρήστες που τις επισκέπτονται. 3

HTML forms (φόρμες) : πως κατασκευάζονται στον Dreamweaver Κάνω κλικ στο Design view Εισαγωγή στοιχείων: Insert->Form ->Text Field Insert->Form -> Button Πρέπει να αλλάζω τα ονόματα όλων των στοιχείων της φόρμας (από ΗΤML κώδικα ή properties) Οι ιδιότητες (properties) του επιλεγμένου στοιχείου Tα στοιχεία της φόρμας (textfields) Χειριστές συμβάντων σε στοιχεία HTML φόρμες (Ι) <html> <body> <input type="button" value="click me..." onclick="alert('hello!!!');alert('hello again!!!');"> </body> </html> Όταν ο χρήστης κάνει κλικ στο πλήκτρο, ο χειριστής συμβάντος (onclick) θα εμφανίσει δύο alerts (οι επιμέρους εντολές χωρίζονται με ; ) Εισαγωγή στην HTML φόρμα ενός πλήκτρου που γράφει Click me 4

Χειριστές συμβάντων σε στοιχεία HTML φόρμες (ΙΙ) <html> <head> function first() { alert("thanks for the click"); } function second() { alert("boooooooooooom!!!"); } </script> </head> <body> <input type="button" value="click me..." onclick="first();"> <input type="button" value="don't click me..." onclick="second();"> </body> </html> O κώδικας των συναρτήσεων γράφεται ανάμεσα στο <head> </head> τμήμα του εγγράφου Όταν πατηθεί αυτό το πλήκτρο, θα εκτελεστεί η συνάρτηση first() Όταν πατηθεί αυτό το πλήκτρο, θα εκτελεστεί η συνάρτηση second() Διαθέσιμοι χειριστές συμβάντων (I) Χειριστής συμβάντος onclick onmouseover onmouseout onmousedown onmouseup onload onunload Προκαλείται όταν... ο χρήστης κάνει κλικ σε ένα στοιχείο (πλήκτρο, textfield, σύνδεσμο,...) ο χρήστης τοποθετήσει τον δείκτη (cursor) του ποντικιού πάνω σε ένα στοιχείο ο χρήστης απομακρύνει τον δείκτη του ποντικιού από ένα στοιχείο O χρήστης πατήσει το πλήκτρο του ποντικιού πάνω από ένα στοιχείο O χρήστης απελευθερώσει το πλήκτρο του ποντικιού πάνω από ένα στοιχείο ολοκληρωθεί η «φόρτωση» (άνοιγμα) μιας ιστοσελίδας από τον browser ο χρήστης «φύγει» από την τρέχουσα σελίδα 5

Διαθέσιμοι χειριστές συμβάντων (IΙ) Χειριστής συμβάντος onchange onsubmit onerror onkeydown onkeypress onkeyup onresize Προκαλείται όταν... ο χρήστης αλλάξει τα περιεχόμενα ενός στοιχείου μιας φόρμας (π.χ. πληκτρολογήσει κάτι σε ένα textfield ή επιλέξει άλλη επιλογή σε μια λίστα) ο χρήστης υποβάλλει (στείλει) μια φόρμα συμβεί κάποιο σφάλμα κατά τη φόρτωση της σελίδας ή κάποιας εικόνας ο χρήστης πατήσει ένα πλήκτρο του πληκτρολογίου ο χρήστης πατήσει και απελευθερώσει ένα πλήκτρο του πληκτρολογίου (ή το κρατήσει πατημένο) ο χρήστης απελευθερώσει ένα πλήκτρο του πληκτρολογίου ο χρήστης αλλάξει το μέγεθος του παραθύρου Άλλα: onfocus, onblur, onabort, ondragdrop, onmove, onreset, onselect Συμβάντα onmouseover/onmouseout Αυτό το alert θα εμφανιστεί όταν ο δείκτης του ποντικιού περάσει πάνω από το πλήκτρο <input type="button" value="click me..." onmouseover="alert('cursor over the button!');" onmouseout="alert('cursor out of button!');"> Κι αυτό όταν ο δείκτης του ποντικιού <a href="http://www.aegean.gr" απομακρυνθεί από το πλήκτρο onmouseover="alert('cursor over the link!');" onmouseout="alert('cursor out of link!');"> University of Aegean</a> 6

Συμβάντα onload/onunload Αυτό το alert θα εμφανιστεί μόλις ολοκληρωθεί το φόρτωμα της σελίδας Κι αυτό όταν ο χρήστης πατήσει το link και «φύγουμε» από τη σελίδα <body onload="alert('μόλις τελείωσα το φόρτωμα!');" onunload="alert('να μας ξανάρθεις!');"> <a href="http://www.aegean.gr" onmouseover="alert('πάω να πατήσω το link!');">university of Aegean</a> </body> Προσπέλαση φορμών (Διάβασμα/αλλαγή δεδομένων σε HTML φόρμες) 7

Javascript κώδικας που διαβάζει δεδομένα από textfields HTML φόρμας function display() { Tοποθετείται ανάμεσα στις ετικέτες <head> alert Name: " + name.value + ", Email: " + email.value); } </script> Insert your name: <input name="name" type="text"> Insert your email: <input name="email" type="text"> <input type="button" value="display" onclick="display();"> Javascript κώδικας που διαβάζει και γράφει δεδομένα σε textfields HTML φόρμας function read_write() { name2.value = "You typed: " + name1.value; } </script> Tοποθετείται ανάμεσα στις ετικέτες <head> Insert your name: <input name="name1" type="text"> Insert your email: <input name="name2" type="text"> <input type="button" value="display" onclick="read_write();"> 8

Άσκηση: Javascript calculator Υλοποιήστε με Javascript ένα on-line υπολογιστή βασικών μαθηματικών πράξεων Το αποτέλεσμα της πράξης θα εμφανίζεται στο δεξί textfield Προσοχή στη διαίρεση! Javascript κώδικας που διαβάζει την κατάσταση ενός checkbox function check() { if (student.checked) alert ("Είσαι φοιτητής!..."); else alert("δεν είσαι φοιτητής!..."); } </script> <p>είσαι φοιτητής; <input name="student" type="checkbox" value="checkbox" checked> <input type="button" onclick="check();" value="check answer"> 9

Javascript κώδικας που διαβάζει από μια λίστα (Ι) Τι θέλεις να αγοράσεις; <select name="fruits"> <option value="7.2">σύκα</option> <option value="4.5">βερύκοκα</option> <option value="5.6">μήλα</option> </select> Πόσα κιλά; <input name="kilos" type="text"> <input type="button" onclick="display();" value="cost"> Javascript κώδικας που διαβάζει από μια λίστα (ΙΙ) Το fruits.value θα ισούται όχι με το επιλεγμένο κείμενο (π.χ. Βερύκοκα ) αλλά με το αντίστοιχο value (4.5) function display() { alert ("Οφείλεις: " + (fruits.value * kilos.value) + " euro!..."); } </script> 10

Πίνακες ή Διατάξεις (arrays) στη Javascript Τι είναι οι πίνακες (arrays) Ένας πίνακας είναι μια δομή που επιτρέπει την αποθήκευση δεδομένων με παρόμοιους τύπους που επιτρέπει την εύκολη προσπέλαση αυτών των δεδομένων μελλοντικά από το script Η πρόσβαση σε ένα στοιχείο ενός πίνακα συνήθως επιτυγχάνεται μέσω ενός αριθμητικού δείκτη Γιατί είναι χρήσιμοι οι πίνακες: χρησιμοποιώντας τον αριθμητικό δείκτη ώστε να «δείχνει» κάθε φορά στο επόμενο στοιχείο του πίνακα, μπορούμε να «διατρέξουμε» τον πίνακα με ένα βρόγχο, διαβάζοντας ή μεταβάλλοντας τα στοιχεία του 11

Ορισμός ενός πίνακα var arrayname = new Array (στοιχείο1, στοιχείο2,..., στοιχείοn); var people = new Array( Μάκης, Τάκης, Σάκης ); Όνομα πίνακα Στοιχεία πίνακα Μάκης Τάκης Σάκης Πίνακας people people[0] people[1] people[2] document.write(people[1]); // Θα τυπώσει Tάκης people[2] = people[0]; // Θα «γράψει» Μάκης στη θέση του Σάκης Παράδειγμα (χωρίς χρήση πινάκων) Αποθήκευση ομοειδών δεδομένων (φοιτητών) σε διαφορετικές μεταβλητές var student1 = "Παπαδάκης"; var student2 = "Χρηστίδου"; var student3 = "Αποστολοπούλου"; var student4 = "Γεωργιάδης"; document.write("<h1>" + student1 + "</h1>"); document.write("<h1>" + student2 + "</h1>"); document.write("<h1>" + student3 + "</h1>"); document.write("<h1>" + student4 + "</h1>"); </script> Εκτύπωση κάθε μεταβλητής με ξεχωριστή εντολή 12

Παράδειγμα (με χρήση πινάκων) Αποθήκευση ομοειδών δεδομένων (φοιτητών) σε πίνακα 4 στοιχείων var students = new Array ("Παπαδάκης", "Χρηστίδου", "Αποστολοπούλου", "Γεωργιάδης"); for (i=0; i < students.length; i++) document.write("<h1>" + students[i] + "</h1>"); </script> Το students.length δίνει το πλήθος των στοιχείων του πίνακα students Ορισμός στοιχείων πίνακα κατά την εκτέλεση (έπειτα από τον ορισμό του πίνακα) Τα στοιχεία ενός πίνακα δεν δίνονται απαραίτητα κατά τον ορισμό του πίνακα Ορισμός πίνακα με δέσμευση χώρου 4 στοιχείων: var students = new Array(4); Ορισμός πίνακα με απροσδιόριστο μελλοντικά πλήθος στοιχείων: var students = new Array(); student[0] = Μάκης // Ta στοιχεία δίνονται αργότερα students[1] = Τάκης students[2] = Σάκης document.write( Πλήθος = + students.length); // Θα τυπώσει 3 13

Άσκηση Σας δίνονται τα ονόματα των αγοριών ("Κώστας", "Γιώργος") και των κοριτσιών ("Ειρήνη", "Μαρία", "Χαρά", "Κατερίνα") Γράψτε ένα script που θα τυπώνει όλα τα δυνατά ζευγάρια (δυνατούς συνδυασμούς ανάμεσα σε ένα αγόρι και σε ένα κορίτσι) Άσκηση (λύση) var boys = new Array ("Κώστας", "Γιώργος"); var girls = new Array ("Ειρήνη", "Μαρία", "Χαρά", "Κατερίνα"); for (i=0; i < boys.length; i++) for (j=0; j < girls.length; j++) document.write("<h1>" + boys[i] + " - " + girls[j] + "</h1>"); </script> 14

Μέθοδοι του αντικειμένου Array (Ι) Μέθοδος concat() join() sort() reverse() pop() push() Περιγραφή Συνενώνει τα στοιχεία 2 ή περισσότερων πινάκων σε ένα νέο πίνακα Δημιουργεί μια συμβολοσειρά που περιέχει όλα τα στοιχεία ενός πίνακα, χωρίζοντάς τα με ένα διαχωριστικό Ταξινομεί αλφαβητικά τα στοιχεία ενός πίνακα Αντιστρέφει τη σειρά των στοιχείων ενός πίνακα (το πρώτο τελευταίο, το δεύτερο προ-τελευταίο, κοκ) Αφαιρεί το τελευταίο στοιχείο από ένα πίνακα και επιστρέφει το διαγραμμένο στοιχείο Προσθέτει ένα στοιχείο στο τέλος ενός πίνακα και επιστρέφει το νέο μέγεθος του πίνακα Μέθοδοι του αντικειμένου Array (ΙΙ) Μέθοδος shift() unshift() slice() splice() Περιγραφή Αφαιρεί το πρώτο στοιχείο από ένα πίνακα και επιστρέφει το διαγραμμένο στοιχείο Προσθέτει ένα στοιχείο στην αρχή ενός πίνακα και επιστρέφει το νέο μέγεθος του πίνακα Εξάγει ένα συγκεκριμένο τμήμα ενός πίνακα και επιστρέφει το τμήμα αυτό ως ένα νέο πίνακα Διαγράφει στοιχεία από ένα πίνακα ή αντικαθιστά στοιχεία σε ένα πίνακα 15

Μέθοδος concat var class_a = new Array ("Κώστας", "Κλειώ"); var class_b = new Array ("Δημήτρης", "Ιωάννα", "Χαρά", "Κατερίνα"); var class_c = new Array ("Γιάννης", "Μαρία"); var everybody = class_a.concat(class_b, class_c); for (i=0; i < everybody.length; i++) document.write("<h1>" + everybody[i] + "</h1>"); </script> Συνενώνει τα στοιχεία των πινάκων class_a, class_b και class_c, αποθηκεύοντάς τα στον πίνακα everybody Μέθοδος sort var messages = new Array(); messages[0] = "What????"; messages[1] = "Beautiful day!!!"; messages[2] = "Hello!!!"; messages.sort(); for (i=0; i<messages.length; i++) document.write("<h1>" + messages[i] + "</h1>"); </script> Μετά την εκτέλεση αυτής της εντολής, ο πίνακας messages θα είναι ταξινομημένος αλφαβητικά 16

Μέθοδοι pop/push, reverse (I) <head> var students = new Array ("Παπαδάκης", "Χρηστίδου", "Αποστολοπούλου"); function print_array (pinakas) { for (i=0; i < pinakas.length; i++) document.write("<h1>" + pinakas[i] + "</h1>"); document.write("<hr>"); } </script> </head> Επειδή το array students ορίζεται μέσα στο <head> τμήμα, θα είναι προσβάσιμο από όλο το έγγραφο (και από scripts που είναι στο <body> τμήμα) Μέθοδοι pop/push, reverse (II) <body> var last = students.pop(); document.write("<h1>" + last + "</h1><hr>"); print_array(students); students.push("βασιλείου"); students.reverse(); print_array(students); </script> </body> 17

Εργασία ακαδ. έτους 2005-2006 On-line calculator που πραγματοποιεί βασικές αριθμητικές πράξεις Εργασία ακαδ. έτους 2008-2009 Φόρμας για online αίτηση εργασίας με HTML - Javascript 18

2η Εργασία: ημερομηνία παράδοσης Δευτέρα 15/1/2010 Εφαρμογή Javascript που υπολογίζει την Ευκλείδια απόσταση μεταξύ δύο πόλεων Φωτογραφίες πόλεων που αλλάζουν με το πέρασα του δείκτη του ποντικιού (mouseover) Αναλυτικές οδηγίες από τη σελίδα Εργασίες του site του μαθήματος 19