Autor | Zpráva | ||
---|---|---|---|
Lukáš Chmela Profil * |
#1 · Zasláno: 5. 10. 2006, 19:25:40
Přeji hezký den, nebo zpíše večer?
Zase jsem se po dlouhé době vrátil k JS a musím přiznat, že mne včera nadchla jeho podobnost s PHP, čiliže pro mne nebyl až tak složitý. Nicméně složitých scriptů přibývalo no a s tím i zádrhelů. Jak jsem již řekl, scripty mám opravdu dlouhé, jelikož se snažím o webovou aplikaci, která bude instalovat různé programy za pomoci PHP ( hlavní struktura ) a JS ( interaktivita instalačky ). Jenže mám problémy i ve scriptech, které by logicky měly jít, jenže v mém případě jaxi nejdou a to mne opravdu dopálilo. Tak vás prosím o radu, jestli nevíte, čím by tyto chyby mohly být způsobeny, popř. jak jim předejít... script proběhne funkci startup až po první document.getElementById.... a pak se zastaví. startup(); function startup() { main = new Image(); main.src = 'Grafika/Loading/main.png'; lineone = new Image(); lineone.src = 'Grafika/Loading/line1.png'; linetwo = new Image(); linetwo.src = 'Grafika/Loading/line2.png'; pointone = new Image(); pointone.src = 'Grafika/Loading/point1.gif'; pointtwo = new Image(); pointtwo.src = 'Grafika/Loading/point2.gif'; document.getElementById('point1').style.color='#ececec'; document.getElementById('point1img').src='Grafika/Loading/point2.gif'; document.getElementById('point2').style.color='#ff9600'; document.getElementById('point2img').src='Grafika/Loading/point1.gif'; document.getElementById('line2').style.display='block'; variables(); } |
||
zivan Profil |
#2 · Zasláno: 5. 10. 2006, 19:29:34
Co vrati fce document.getElmentById('point1') ?
Chtelo by to i tu cast HTML, kde jsou prvky s id "point1", "point1img" ... |
||
Lukáš Chmela Profil * |
#3 · Zasláno: 5. 10. 2006, 19:33:16
aha, nj.. to mne nenapadlo... mmnt
tady: <img src="Grafika/Loading/line2.png" id="line2" /> <p id="point1"><img src="Grafika/Loading/point1.gif" id="point1img" /> Rozpoznávání systému</p> <p id="point2"><img src="Grafika/Loading/point2.gif" id="point2img" /> Načítání grafiky</p> <p id="point3"><img src="Grafika/Loading/point2.gif" id="point3img" /> Načítání ikon</p> co to vrací, nevim... v ifu to totiž neodpoví na if (doc....) ani na if (!doc....) |
||
Lukáš Chmela Profil * |
#4 · Zasláno: 5. 10. 2006, 19:35:53
mám takové tušení že by to mohl způsobovat zbytek js scriptů, ale jak říkám, je to jen doměnka...
připomíná mi to trable z php, kvůli kterým jsem musel přepsat celý script, i když byl naprosto v pořádku... |
||
zivan Profil |
#5 · Zasláno: 5. 10. 2006, 19:40:29 · Upravil/a: zivan
A co Konzole javascriptu? Nehlasi nejaky error?
|
||
Lukáš Chmela Profil * |
#6 · Zasláno: 5. 10. 2006, 19:44:38
... IE nevznáší námitky, ale vidím že Opeře se to moc nelíbí...
message: Statement on line 14: Could not convert undefined or null to object jenže objekt point1 tam je |
||
Lukáš Chmela Profil * |
#7 · Zasláno: 5. 10. 2006, 19:50:58
nj, o nic lépe na tom není ani Mozilla a Netscape. point1 prý neexistuje nebo nelze změnit parametry
|
||
zivan Profil |
#8 · Zasláno: 5. 10. 2006, 20:18:43
Neco mas blbe, tohle normalne funguje.
<body> <img src="Grafika/Loading/line2.png" id="line2" /> <p id="point1"><img src="Grafika/Loading/point1.gif" id="point1img" /> Rozpoznávání systému</p> <p id="point2"><img src="Grafika/Loading/point2.gif" id="point2img" /> Načítání grafiky</p> <p id="point3"><img src="Grafika/Loading/point2.gif" id="point3img" /> Načítání ikon</p> <script> document.getElementById('point1').style.color='#ececec'; document.getElementById('point1img').src='Grafika/Loading/point2.gif'; document.getElementById('point2').style.color='#ff9600'; document.getElementById('point2img').src='Grafika/Loading/point1.gif'; document.getElementById('line2').style.display='block'; </script> </body> |
||
tiso Profil |
#9 · Zasláno: 5. 10. 2006, 20:35:08
Lukáš Chmela
Problém bude asi v tom že v dobe vykonávania toho JS ten element ešte neexistuje, naviaž to na <body onload="statup();"> |
||
Lukáš Chmela Profil * |
#10 · Zasláno: 6. 10. 2006, 14:35:51
zivan: nj, v mém případě by ale bylo psaní rovnou do html nesmyslné.
tiso: aha, opravdu. Dráve jsem pomocí funkce onload načítal scripty normálně, ale pak jsem je nechal načítat samy od sebe a ukázalo se, že zpomoci funkce onload to opravdu funguje =). Už jsem zkoušel přámý zápis do html, ale nešlo mi to... asi jsem někde udělal chybu. Největší problémy jsou vždy blbosti :D Opravdu moc děkuji za pocom ;) |
||
peta Profil * |
#11 · Zasláno: 6. 10. 2006, 15:33:19
"IE nevznáší námitky" - a mas zaple i podrobnosti v JS konzole v IE? :)
|
||
zivan Profil |
#12 · Zasláno: 6. 10. 2006, 16:06:41
Lukáš Chmela: Slo mi o to, ze problem neni v tomhle kodu. Ze to funguje a musis hledat neco jineho.
|
||
Joker Profil |
#13 · Zasláno: 6. 10. 2006, 16:30:58
Lukáš Chmela
Ono zápis document.getElementById('point1').style.color='#ececec'; není moc odolný proti chybám... Pokud se něco zvrtne, tak: document.getElementById('point1') - undefined document.getElementById('point1').style - chyba Robustnější řešení by bylo: if(document.getElementById && (el=document.getElementById('point1')) && el.style) el.style.color='#ececec'; Vůbec nejlepší by bylo si udělat vlastní načítací funkci, která by zvládala načítat přes document.getElementById() i přes document.all a případně document.layers a potom by to vypadalo například takto: if((el=nacti('point1')) && el.style) el.style.color='#ececec'; a nevyhazovalo by to chyby. Jinak ale samozřejmě základní poučka je, že funkci pracující s nějakými HTML prvky musím volat až po načtení těch prvků |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0