Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
  Drukuj

Podpinanie skryptu z zewnętrznego pliku *.js do strony
Autor Wiadomość
Post Napisane: 18 lip 2011, o 21:17 
Offline

Dołączył(a): 18 lip 2011, o 20:45
Posty: 3
Witam.
Od razu piszę, że jestem początkujący w języku JavaScript, dlatego wyskrobałem skrypt z kilku innych... :roll:

Mam problem z podpięciem skryptu z zewnętrznego pliku *.js... Kiedy skrypt jest na nagłówku strony *.php to wszystko jest w porządku, godzina jest generowana i nawet sekundy lecą sprawnie, ale kiedy ten skrypt jest w osobnym pliku, to zaczynają się schody...
A mianowicie:
- dodaję w nagłówku ścieżkę do pliku
- w <body> ją wywołuję, ale zamiast uzyskana poprzedniego rezultatu, wywala mi NaN:NaN:NaN...
Wiecie może w czym jest problem?

Z góry dzięki za odpowiedź ;)

start.php
Kod:
<html xml:lang="upl" lang="pl"> 
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
<title>Start</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<script type="text/javascript" src="zegarek.js"></script>
</head>

<body>
   <div id="all">
            <div id="center_left_down">
               <span style="font-size:26px;    color:#AFAFAF;">Godzina:</span>
               <br />
               <span id="time"></span>
               <script type="text/javascript">
               new showLocalTime("time", "server-php", 0, "short")
               </script>
            </div>
   </div>
</body>

</html>


zegarek.js
Kod:
function showLocalTime(container, servermode, offsetMinutes, displayversion){
if (!document.getElementById || !document.getElementById(container)) return
this.container=document.getElementById(container)
this.displayversion=displayversion
var servertimestring=(servermode=="server-php")? '<? print date("F d, Y H:i:s", time())?>' : (servermode=="server-ssi")? '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' : '<%= Now() %>'
this.localtime=this.serverdate=new Date(servertimestring)
this.localtime.setTime(this.serverdate.getTime()+offsetMinutes*60*1000) //add user offset to server time
this.updateTime()
this.updateContainer()
}

showLocalTime.prototype.updateTime=function(){
var thisobj=this
this.localtime.setSeconds(this.localtime.getSeconds()+1)
setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
}

showLocalTime.prototype.updateContainer=function(){
var thisobj=this
if (this.displayversion=="long")
this.container.innerHTML=this.localtime.toLocaleString()
else{
var hour=this.localtime.getHours()
var minutes=this.localtime.getMinutes()
var seconds=this.localtime.getSeconds()
this.container.innerHTML=formatField(hour, 1)+":"+formatField(minutes)+":"+formatField(seconds)+""
}
setTimeout(function(){thisobj.updateContainer()}, 1000) //update container every second
}

function formatField(num, isHour){
if (typeof isHour!="undefined"){ //if this is the hour field
var hour=(num>24)? num-24 : num
return (hour==0)? 24 : hour
}
return (num<=9)? "0"+num : num//if this is minute or sec field
}


Ostatnio edytowano 18 lip 2011, o 21:29 przez Salvation, łącznie edytowano 2 razy

Góra
 Zobacz profil  
 

Re: Podpinanie skryptu z zewnętrznego pliku *.js do strony
Post Napisane: 18 lip 2011, o 21:19 
Offline

Dołączył(a): 18 lip 2011, o 20:45
Posty: 3
Aha, dodam jeszcze, że rezultat wrzucenia skryptu godzinowego w <head> znajdziecie na http://pdziubczynski.pl/start.php ;)


Góra
 Zobacz profil  
 

Re: Podpinanie skryptu z zewnętrznego pliku *.js do strony
Post Napisane: 19 lip 2011, o 13:07 
Offline

Dołączył(a): 29 wrz 2009, o 15:02
Posty: 175
W kodzie pliku js masz fragment innego języka niż JS:
Kod:
var servertimestring=(servermode=="server-php")? '<? print date("F d, Y H:i:s", time())?>' : (servermode=="server-ssi")? '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' : '<%= Now() %>'


Mam ogólnie wrażenie, że kod jest niepotrzebnie rozbudowany. ogólnie zastanowiłbym się nad jego przydatnością... :)


Góra
 Zobacz profil  
 

Re: Podpinanie skryptu z zewnętrznego pliku *.js do strony
Post Napisane: 19 lip 2011, o 14:12 
Offline

Dołączył(a): 18 lip 2011, o 20:45
Posty: 3
Czyli mogę tę linijkę usunąć? Bo ona generuje godzinę w php jakby nie zadziałał js...

Ogólnie, to kod ten jest potrzebny do wyświetlenia poprawnej godziny z serwera... Wiem, może on jest tam niepotrzebny, ale na przyszłość będę wiedział jak podpiąć plik.js do index.php lub *.html :)

No chyba, że nie wiecie w czym jest problem...


Góra
 Zobacz profil  
 

Re: Podpinanie skryptu z zewnętrznego pliku *.js do strony
Post Napisane: 20 lip 2011, o 08:34 
Offline

Dołączył(a): 29 wrz 2009, o 15:02
Posty: 175
Jeśli chciałbyś po prostu zacząć wykorzystywać JS na swoich stronach, to polecam:
http://youthcoders.net/html-css/kurs-ht ... -plik.html

Więcej o JavaScript poczytasz:
http://yarpo.pl
http://youthcoders.net/javascript.html

Powodzenia :)


Góra
 Zobacz profil  
 

Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
cron
Style by Webdesign styles, ziola alveo ziola akuna przyczyny [przeróbki dla YouthCoders.net - yarpo]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL