Javascripts errors X 3

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
geotheod
Δημοσιεύσεις: 54
Εγγραφή: 19 Απρ 2005 13:12
Τοποθεσία: Αθήνα
Επικοινωνία:

Javascripts errors X 3

Δημοσίευση από geotheod » 06 Ιουν 2005 19:43

Παιδια εχω προβληματα σε 3 διαφορετικους κωδικες Javascript. Αν μπορει καποιος να με βοηθησει εστω και στον ένα από αυτους θα του χρωσταω μεγαλη χαρη. Το θεμα είναι ότι οι παρακατω κωδικες που παραθετω εκτος του ότι δεν μου δουλευουν μου φαινονται περιπλοκοι ως προς την κατασκευη τους και γνωριζοντας πως κάθε κωδικας Javascript μπορει να κατασκευαστει με πολλους τροπους θα ηθελα να μπορουσατε να μου παραθετατε καποιον (ή καποιους) ευκολοτερους.

Στο πρωτο προγραμμα θελω να δημιουργησω ένα link σε μια σελιδα που θα πηγαινει τον χρηστη σε καποια άλλη αναλογα με την γλωσσα του. Δηλαδη αναλογα με την χωρα που βρισκομαστε θα μας πηγαινει σε άλλη σελιδα που εχω δημιουργησει (την greek.html ή την english.html). Από ότι καταλαβαινω ενδεχομενως να κοιταει την γλωσσα του browser.

Κώδικας: Επιλογή όλων

<html>
  <head>
  <script language="javascript">
  function getlanguage&#40;&#41;
  &#123;
  language=navigator language;
  if&#40;language&#41;
  language=language.substring&#40;0,2&#41;;
  
  switch&#40;language&#41;
  &#123;
  case "en"
  window.location="english.html"
  break;
  case "el"
  window.location="greek.html"
  default
  window.location="english.html"
  &#125;
&#125;
  </script>
  
 </head>
 
 <body>
 <a href="javascript&#58;getlanguage&#40;&#41;;">go to a page for your language</a>
 </body>
</html>
Το δευτερο είναι ένα προγραμμα που κραταει μια καθυστερηση πατωντας ένα link και μια δευτερη μεγαλυτερη καθυστερηση πατωντας ένα άλλο link. Δηλαδη εισαγει καθυστερησεις μερικων δευτερολεπτων κάθε φορα.

Κώδικας: Επιλογή όλων

<html>
  <head>
  <script language="javascript">
  function wait&#40;delay&#41;
  &#123;
  String="pause4alert&#40;"+alert+"&#41;;";
  setTimeout&#40;String delay&#41;;
  &#125;
  function pause4alert&#40;delay&#41;
  &#123;
  alert&#40;"OK"+delay/1000+"seconds perasan"&#41;;
  &#125;
  </script>
</head>

<body>
	<a href="javascript&#58;void&#40;&#41;" onClick="wait&#40;1000&#41;">
  Click here and wait 1 sec</a>
  <br>
  <a href="javascript&#58;wait&#40;2000&#41;">
  Click here and wait 2 sec
</body>
</html> 
 
Το τριτο και τελευταιο προγραμμα είναι και αυτό που με δυσκολευει περισσοτερο. Είναι ένα javascript το οποιο βαζει ένα cookie με την εισαγωγη ενός χρηστη στο προγραμμα και το οποιο επειτα από λιγο χρονικο διαστημα που εμεις καθοριζουμε εξαφανιζεται&#8230;

Κώδικας: Επιλογή όλων

<html>
<head>
<script language="javascript">
function getexpirydate&#40;no days&#41;
&#123;
 var UTC String;
 Today=new Date&#40;&#41;;
 no milli=Date.parse&#40;Today&#41;;
 Today.setTime&#40;nomilli+nodays*24*60*60*1000&#41;;
 UTC String=Today.toUTC String&#40;&#41;;
 return UTC String
 &#125;
function getcookie&#40;cookie name&#41;
&#123;
	var cookieString=""+document.cookie;
	var index1=cookieString.indexof&#40;cookie name&#41;;
	if&#40;index==-1 || cookiename==""&#41;
	return "";
	
	var index2=cookieString.indexof&#40;'i',index1&#41;;
	if&#40;index2==-1&#41;
	index2=cookiestring.length;
	return unescope&#40;cookiestring.substring&#41;
	index1+cookiename.length+1,index2&#41;
&#125;

fuction setcookie&#40;name,value,duration&#41;
&#123;
	cookieString=name+"="+escape&#40;value&#41;+"; EXPIRES="+getexpirydate&#40;duration&#41;;
	document.cookie=cookieString;
	if&#40;!getcookie&#40;name&#41;&#41;
	return false
else
	return time
&#125;

</head>

<body>
  <script>
  if&#40;getcookie&#40;"visitorname"&#41;&#41;
  &#123;
  	document.write&#40;"Welcome"+getcookie&#40;"visitorname"&#41;&#41;;
  &#125;
  </script>
  
  <form>
  name&#58;<input type="text" name="myname">
  <input type="submit" name="submit" value="set cookie&#40;'visitname',document.form&#91;0&#93; myname.value,2&#41;;>
  </form>
 </body>
 </html>  
Aυτα παιδια... Οποιος εχει διαθεση και χρονο ας τους ριξει μια ματια και αν μπορει να μου δωσει τα φωτα του. Σας ευχαριστω για το χρονο σας και για την βοηθεια σας.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Javascripts errors X 3

Δημοσίευση από skeftomilos » 06 Ιουν 2005 23:24

geotheod αν επιτρέπεται έγραψες ο ίδιος τον κώδικα ή τον βρήκες κάπου έτοιμο; Έχει πολλά συντακτικά λάθη, κυρίως με τη χρήση του κενού. Στη JavaScript (και στις περισσότερες γλώσσες) τα κενά έχουν σημασία.

Κώδικας: Επιλογή όλων

language=navigator language;   //λάθος
language = navigator.language; //σωστό

setTimeout&#40;String delay&#41;;  //λάθος
setTimeout&#40;String, delay&#41;; //σωστό

UTC String=Today.toUTC String&#40;&#41;; //λάθος
UTCString = Today.toUTCString&#40;&#41;; //σωστό
Επίσης προσπάθησε να φτιάχνεις εσοχές στον κώδικα (indenting) ώστε να είναι πιο ευκολοδιάβαστος. Βοηθάει και στο debugging εκτός των άλλων, κυρίως εκεί!
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

geotheod
Δημοσιεύσεις: 54
Εγγραφή: 19 Απρ 2005 13:12
Τοποθεσία: Αθήνα
Επικοινωνία:

Javascripts errors X 3

Δημοσίευση από geotheod » 07 Ιουν 2005 01:14

φιλε μου skeftomilos οι κωδικες αυτοι ειναι δωσμενοι απο καθηγητη (ο Θεος να τον κανει) και επειδη ποτε δεν μας εξηγει τιποτα σας ζαλιζω και εσας προκειμενου να μαθω καποια πραγματα.. Ομολογω οτι χωρις την βοηθεια σας λιγα πραγματα θα ειχα κατανοησει.

Ομως χαρη στις λυσεις που μου δινετε μπορω να βλεπω τα αποτελεσματα τους, να πειραματιζομαι και να βλεπω πως δουλευει και ετσι να μαθαινω. Και επειδη τα προγραμματα που μου δινει ο ανεκδιηγητος αυτος καθηγητης ΠΟΤΕ δεν τρεχουν ζητω την βοηθεια σας...

Σας ευχαριστω που με ανεχεστε...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Javascripts errors X 3

Δημοσίευση από skeftomilos » 07 Ιουν 2005 14:08

Επομένως πρέπει να γίνεις μάστορας στο debugging! :) Το καλύτερο tool που ξέρω είναι η JavaScript κονσόλα του Firefox. Ελπίζω να έχεις Firefox (τσάμπα είναι). Για web-development είναι ανεκτίμητος.

Φορτώνεις τη σελίδα στον Firefox και αν δε λειτουργεί όπως πρέπει σημαίνει ότι κάτι χτύπησε στον κώδικα JavaScript. Η JavaScript δε συγχωρεί τα συντακτικά λάθη. Μόλις βρει το πρώτο σταματάει την εκτέλεση του κώδικα, δεν πάει παρακάτω. Επιπλέον ο Firefox (και ο Opera) προσθέτει μία σημείωση του λάθους στη JavaScript console, η οποία είναι αρκετά περιγραφική και λογικά θα σε οδηγήσει στη διόρθωση του λάθους. Μετά κάνεις refresh τη σελίδα για να εντοπίσεις το επόμενο σφάλμα (αν υπάρχει).
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Javascripts errors X 3

Δημοσίευση από Cmg__ » 07 Ιουν 2005 16:43

to parathrhsa kai egw ayto me ta kena!
Lew mono ego to vlepw????
pali kala :D

geotheod
Δημοσιεύσεις: 54
Εγγραφή: 19 Απρ 2005 13:12
Τοποθεσία: Αθήνα
Επικοινωνία:

Javascripts errors X 3

Δημοσίευση από geotheod » 10 Ιουν 2005 19:55

Καταρχην ευχαριστω πολυ

Xρησιμοποιησα την Javascript κονσολα και οντως βοηθαει πολυ στον εντοπισμο των λαθων.

Οστοσο εχω μια απορια οσον αφορα ενα κομματι του πρωτου κωδικα που παρεθεσα παραπανω.

language=language.navigator;
if(language)
language=language.substring(0,2);

Ειδικα την τριτη γραμμη δεν την καταλαβαινω καθολου με το 0 και το 2.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Javascripts errors X 3

Δημοσίευση από skeftomilos » 11 Ιουν 2005 13:14

substring: μέθοδος του String
Σύνταξη: substring(indexA, indexB)
Παράμετροι:
- indexA: An integer between 0 and 1 less than the length of the string.
- indexB: An integer between 0 and 1 less than the length of the string.

substring extracts characters from indexA up to but not including indexB.
______________________________

Η έκφραση navigator.language επιστρέφει το εξής (σε διάφορους browsers):
- Internet Explorer: undefined
- Firefox: en-US
- Opera: en

Επομένως μετά την εκτέλεση των εντολών:

Κώδικας: Επιλογή όλων

var language = navigator.language
if &#40;language&#41; language = language.substring&#40;0,2&#41;
... η μεταβλητή language θα περιέχει en ή undefined.

Η δεύτερη γραμμή εκτελείται μόνο αν η έκφραση (language) είναι true, και το undefined στη JavaScript θεωρείται false.

HTH :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες