ugrás a tartalomhoz

IE hibaüzenet látszólag értelmetlenül

Fedor · 2006. Szep. 29. (P), 12.40
Sziasztok!

Van egy weboldalam ami tökéletesen működik az összes böngésző alatt, de az IE debuggere folyamatosan hibát jelez ki, miközben pl. A Firefox debuggere nem. A hibaüzenet mindig ugyanaz:


Sor: 104
Karakter: 99
Hiba: Az objektumot kötelező megadni


A vicces az, hogy mindig ezt a sor és karakterszámot írja ki, bármelyik aloldalról legyen is szó, miközben ebben a sorban más és más van, ami véletlenül sem objektum, hanem mondjuk csak ennyi: <td class="pg">. A közös ezekben a sorokban az, hogy nincs bennük 99 karakter, tehát a hibaüzenet egy nemlétező helyre utal. Elég idegesítő, mert ugye az IE-ben emiatt állandóan ott van a bal alsó sarokban a figyelmeztető sárga háromszög, és ez nem vet túl jó fényt rám, viszont fogalmam sincs, hogy miképp tudnék elhárítani egy nem létező hibát.

Nem találkozott valaki hasonlóval?

Üdv,
Fedor
 
1

az IE debuggere sz@r

TeeCee · 2006. Szep. 29. (P), 13.12
erre rájöhettél volna ;)
Szóval:
A 104-es sort úgy találod meg, hogy:
1.) végignézed az összes külsőleg hivatkozott javascriptet, megnézed, van-e 104 sor benne és abban a sorban van-e 99. karakter.
2.) végignézed a forrást, kitörlöd belőle az összes nem javascript sort és megnézed, hogy van-e benne 104. sor, illetve abban van-e 99. karakter :)

(Ha mindig ua. a helyet írja ki, akkor 99%, hogy nem a forrás az, hanem vmelyik behúzott JSfile, hacsak nem egy nagyobb js-sel kezdesz a forrás elején...)
Ezekután van Xdb találatod a 104-es sorokra, innen már rádbízom.
FX alatt nem ad warningot, hibát, semmitsem? Nemlehet, hogy egy javascripttel böngészőfüggősített sor fut zátonyra?

Remélem segítettem :o)
2

A JS-re vonatkozik

Anonymous · 2006. Szep. 29. (P), 13.17
- ha van include-olt js fájl, akkor abban kell keresni a 104. sort
- ha több js is van include-olva, akkor mindet érdemes végignézni (azt nem tudom, hogy az összes js-t egy fájlként kezeli-e és az include-ok sorrendjében összefűzve adja a 104.sort, de ez nem valószínű)
- ilyen hibával akkor szoktam találkozni, amikor js-ből hozok létre DOM-mal dolgokat és utána document.getElementById-vel hivatkozok rá, de az IE nem minden esetben találja meg (nem jöttem még rá, hogy mikor igen, mikor nem)
- előfordulhat, hogy a js előbb kezd el futni, mint ahogy a teljes tartalom betöltődne és hivatkozni akar egy még nem létező objektumra (ezt kizárni látszik az a tény, hogy csak az IE dob hibát)
- ha embedelt js van, akkor pedig ott kell lenni a <td> környékén a hibának...

remélem, ezek alapján megtalálod a hibát
3

Sajnos nem jutottam előbbre

Fedor · 2006. Szep. 29. (P), 14.10
Az IE debuggre szar, ezt tudom, de mégis engem éget, hogy hibát jelez :-(

A firefox debuggere semmit nem jelezz erre a sorra, még figyelmeztetést se.

Az oldal dinamikus, adatbázis alapú, persze tele van include-okkal (mindegyik oldal más és más include-okból épül fel, gyakorlatilag egy olyan van csak, amelyik az összes oldalban előfordul, és abban nincs 104 sor), meg van kivülről meghívott javascript is (nincs benne 104 sor), de amikor a forrás 104-ik soráról beszéltem, akkor úgy értettem, hogy megnéztem a böngészőben generált oldal forráskódját, és annak a 104-ik sorát ellenőriztem, elvégre az IE a változókkal módosított oldalra hivatkozott, nem az alap php fájlra.

Kiegészítés: Előfordul, hogy a hibajelzés nem jelenik meg, miközben ugyanaz az oldal már hibás mondjuk a frissítés gomb megnyomása után. Csak hogy még érdekesebb legyen
4

Nem betöltött objektum

Anonymous · 2006. Szep. 29. (P), 18.05
Esetleg olyasmit tudok elképzelni, hogy egy nem betöltött objektumra hivatkozol, pl. az oldal teljes letöltése előtt a DOM fában matatsz meg ilyesmi.
5

új verzió

Fedor · 2006. Nov. 7. (K), 12.10
Bár tudomásom szerint ebben az ügyben nem változtattam az oldalamon, a hibaüzenet egy ideje eltünt. IE automatikus frissítés miatt talán? Viszont ma újra megjelent, és még viccesebb: szerinte a második sor első karakterénél szintaktikai hiba van. Talán nem okozok meglepetést, ha megmutatom az első két sort:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
Szóljon, aki mást várt :-)
6

Én!

Anonymous · 2006. Nov. 7. (K), 19.06
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu">
9

Ennyire kekec lenne az IE mostanában?

Fedor · 2006. Nov. 8. (Sze), 16.22
Eddig ez nem volt gond, ezért lustaságból maradtam a sima <html>-nél. Kipróbáltam, segített, szóval ezentúl erre is figyelek.

Kösz.
7

Hát, ez hiba is...

TeeCee · 2006. Nov. 8. (Sze), 15.39
szerinte a második sor első karakterénél szintaktikai hiba van

<script language="javascript" type="text/javascript">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
</script>
Ez nálam nem működik, de a mozilla fx jelzi is, nálad nem?...

Talán nem okozok meglepetést,

de, meglepetést okoztál.
Azt hittem, a legelső hozzászóló (én :P ) felvilágosított, hogy a <SCRIPT>-tag-ban kell keresni a hibát.
Nembaj, elmondom mégegyszer:
1.) Az összes SCRIPT-tag-on kívüli részt törlöd a generált forrásból, hogy csak a javascript maradjon. Megkeresed benne a hivatkozott sort és megnézed, hogy mi ahiba.
2.) HA nem találtál az 1.)-es pontban semmit hibát, AKKOR fogod az összes külső javascript-fájlt, megnézed bennük a jelzett sort, és ha hibás, kijavítod...
3.) Refresh/Reload és utána kezdheted keresn ia következő hibasort...
8

Hol itt a javascript?

Fedor · 2006. Nov. 8. (Sze), 15.50
Közel távol sehol sincs javascript az első két sor környékén...
10

tényleg nem érted?

TeeCee · 2006. Nov. 9. (Cs), 09.09
Nem az számít, mi van a TELJES forrás első két sorában, hanem hogy mi van a JAVASCRIPTEK első két sorában.
Ne haragudj, de ennnyire nehéz felfogást...
A HTML-forrásodban lévő javascript kód első két sorát írd ide.

pfff.