scriptek mobilon
Sziasztok!
Mobilra próbálok fejleszteni egy alkalmazást, HTML, php, JavaScript megoldásokkal.
Windows Mobile 5-ös emulátorral tesztelem.
És azt vettem észre, hogy ez a fajta js megoldás { setInterval(updateclock(),1000); } nem akar működni.
Már a megjelenítése is gond volt. Eredetileg <span>-ban volt, aztán áttettem <iframe>-be, <ilayer>-be, <div>-be, de meg se nyikkant.
Most egy <td id="clock"> cellában van és az emulátoron, IE alatt megjelenik ugyan a beolvasáskori aktuális idő, de aztán a másodpercvek csak nem akarnak pörögni.
Miért? AJAX a lalke?
De ha még ezt se tudja, akkor ajaxot vagy bármilyen js library-t hogyan? Vagy az teljesen más tészta és menjek el jquery vagy prototype irányba?
Érdekes számomra, hogy a TODAY változót pedig azonnal kiírta, nem kellett vele agyalni...
■ Mobilra próbálok fejleszteni egy alkalmazást, HTML, php, JavaScript megoldásokkal.
Windows Mobile 5-ös emulátorral tesztelem.
És azt vettem észre, hogy ez a fajta js megoldás { setInterval(updateclock(),1000); } nem akar működni.
Már a megjelenítése is gond volt. Eredetileg <span>-ban volt, aztán áttettem <iframe>-be, <ilayer>-be, <div>-be, de meg se nyikkant.
Most egy <td id="clock"> cellában van és az emulátoron, IE alatt megjelenik ugyan a beolvasáskori aktuális idő, de aztán a másodpercvek csak nem akarnak pörögni.
Miért? AJAX a lalke?
De ha még ezt se tudja, akkor ajaxot vagy bármilyen js library-t hogyan? Vagy az teljesen más tészta és menjek el jquery vagy prototype irányba?
Érdekes számomra, hogy a TODAY változót pedig azonnal kiírta, nem kellett vele agyalni...
<head>
<script language="JavaScript" type="text/javascript">
var d=new Date();
var monthname=new Array("Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December");
var dayname=new Array("Vasárnap","hétfõ","kedd","szerda","csütörtök","péntek","szombat");
var TODAY = d.getFullYear() + ". " + monthname[d.getMonth()] + " " + d.getDate() + ". " + dayname[d.getDay()]+" ";
function updateClock ( ){
var currentTime = new Date ( );
var currentHours = currentTime.getHours ( );
var currentMinutes = currentTime.getMinutes ( );
var currentSeconds = currentTime.getSeconds ( );
currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds;
document.getElementById("clock").innerHTML = currentTimeString;
}
</script>
</head>
<body bgcolor="#C0DFFD" onload="updateClock(); setInterval('updateClock()', 500);">
<tr bgcolor="#CCFF99">
<td colspan="6" align="center" style=" font-size:8px; font-weight:bold;">
<script language="javascript" type="text/javascript">
document.write(TODAY);
</script>
</td>
<td> </td>
<td bordercolor="#000000" id="clock" name="clock">
<script language="javascript" type="text/javascript">
updateClock(); setInterval('updateClock()', 500);
</script>
</td>
</tr>
A setInterval() függvényt vár első paraméterként
A script tageket szedd ki a cellákból, és az onload attribútum helyett is inkább tegyél egy eseményfigyelőt a window-ra, load eseményt figyelve, és onnan indítsd a kódod.
HTML
Ami legfontosabb hiba, hogy anélkül állítod az innerHTML-t, hogy biztos lennél benne, hogy az elem létezik. Másodsorban, az sem biztos, hogy létezik innerHTML az adott motorban, érdemes lehet hagyományos DOM függvényekkel csinálni.
Imhol egy működő példa:
desktopon működik is,
De az emulátorban meghasalt. A <div>-ek helyén egy szép "[object]" kiírás van.
Ez attól van, hogy nem a "hagyományos" js kódolást alkalmaztad? Vagy, ezt a -számomra- új kódolást már az IE5 idején is lehetett volna haszálni?
Arra gondoltam, hogy az emulátorba berakom a legújabb mini Operát. Sikerült is...
úgy böngszek vele, hogy csak na! Csak az a na ne volna, mert a localhost-ra nem hajlandó rápislogni. Egyébként bármit lehet rajta nézni. csak localhost-ot nem.
Most stróbálom a Fennec-et tisztába tenni..
:)
A <div>-ek helyén egy szép
Ezt részleteznéd?
Mi az, hogy nem a hagyományos kódolást? Ez a kódolás teljesen hagyományos, elvégre IE5 is érti, ami már több mint 10 éves, ami a számítástechnika világában már vehető hagyományosnak.
Mondjuk nem tudom, miért pont Windows Mobile 5 emulátorral próbálkozol, nem tudom, hol találsz még 4-5 éves mobiltelefonokat, elvégre a Windows Mobile 5 2005-ben jelent meg. Érdemesebb lenne a WM6 illetve 6.5-tel kísérletezgetni, elvégre azok jóval aktuálisabb telefonok, ugyanis a WM6 2007-ben, a WM6.5 pedig 2009-es, persze csak ha mindenképpen a WM a célplatform.
hagyományos
változók
fügvények
Ezzel szemben a Te megfogalmazásod egyetlen zárójelbe tesz bele mindent. Nekem ez új. Pontosabban egy olyan programozástechnikai tudás áll mögötte, amit nem ismerek és nem tudom beazonosítani.
Nem tudok így gondolkodni, bár úgy tűnik, hatékonyabb.
WM5, WM6
Nem cél. Sem a platform, sem a verzió. DE. Én P3-as, 900MHz, 1GB Ram-os géppel dolgozom.
Megvan az előnye, megvan a hátránya.
Előny az, hogy rá vagyok kényszerítve az egyszerű és gyors megoldásokra, a hátrány, az összes többi!
:)
Föltettem a WM6-ot. Háromszor annyi ideig indul el csak az emulátor- az adatcseréről ne is beszéljünk!-, és nem látja a localhostot. Saját IE-vel sem.
A WM5 legalább azt látja. De nagyon szívesen kipróbálom más emulátorral, ami még ép ésszel elindul ezen a gépen.
Ha tudsz, légyszi , ajánl valamit.
:)
Köszi!
:)
JavaScript
Amennyiben nem éri el a localhostot, akkor rakd fel online, és teszteld ott.
localhost mobilon
webserver
Van Opera Mobile emulátor is