Wanneer ik mijn website in Internet Explorer via localhost/website benader dan krijg ik soms de error: "A runtime error has occurred. Do you wish to debug?" "Line: 18 Error: Object Expected"
Line 18 is de regel waar de <body> tag begint. Deze heeft een onload event waarbinnen een init(); functie wordt aangeroepen.
De init functie bevind zich in een javascript bestand welke samen met andere ingeladen wordt boven in de html code via een include.js
Dit include.js bestand wordt als PHP bestand uitgevoerd (net zoals alle andere .js bestanden) en ziet er alsvolgt uit:
Deze constructie werkt opzichzelf goed (in ieder geval in FF en Opera). Probleem is dus de foutmelding die ik hierboven beschrijf.
In de body tag staat:
Wanneer ik in de init functie direct op de eerste plek een alert('foo'); geef, dan komt deze niet voor de foutmelding naar voren.
Wanneer ik de alert net voor de init(); geef op de volgende manier:
dan komt hij wel naar boven.
Dit wijst er dus op dat de fout toch in het samengestelde javascript bestand zit.
Na heel veel zoeken en proberen heb ik besloten session_start(); eens uit te zetten, en file2.js niet meer te includen (want daar heb ik sessions voor nodig).
Toen was het probleem compleet over!
Om eens te kijken of de goede gegevens wel in de session kwamen te staan besloot ik in file2.js voor de functie die de session variabelen gebruikt te kijken wat in de variabelen kwam te staan:
Als ik dan kijk heb ik twee situaties:
1. Ik krijg de twee alerts waarin de juist gegevens afgebeeld worden, de andere error blijft uit en alles werkt naar behoren.
2. De error die ik hierboven beschreven heb komt naar voren, en de twee alerts worden NIET afgebeeld.
Online krijg ik deze bug voor zover ik weet niet.
Wanneer een vriend van me over internet op mijn eigen server kijkt, krijgt hij de bug ook nooit.
FF en Opera geven de bug zoiezo nooit.
Het include.js bestande wordt absoluut benaderd, een andere manier is niet mogelijk omdat ik gebruik maar van een centrale template welke voor alle url's gebruikt wordt...
Weet iemand hoe ik de session nog verder kan controleren?
Is dit meer een server probleem dan een coding probleem??
Line 18 is de regel waar de <body> tag begint. Deze heeft een onload event waarbinnen een init(); functie wordt aangeroepen.
De init functie bevind zich in een javascript bestand welke samen met andere ingeladen wordt boven in de html code via een include.js
Dit include.js bestand wordt als PHP bestand uitgevoerd (net zoals alle andere .js bestanden) en ziet er alsvolgt uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?php header("Content-type: text/javascript;"); session_start(); include( "./config.inc.php" ); echo ( "\r\n" ); // om javascript code netjes onder elkaar te krijgen, heeft geen invloed op de fout include( "./init.js" ); echo ( "\r\n" ); include( "./file1.js" ); echo ( "\r\n" ); include( "./file2.js" ); ?> |
Deze constructie werkt opzichzelf goed (in ieder geval in FF en Opera). Probleem is dus de foutmelding die ik hierboven beschrijf.
In de body tag staat:
code:
1
| <body onload="init();"> |
Wanneer ik in de init functie direct op de eerste plek een alert('foo'); geef, dan komt deze niet voor de foutmelding naar voren.
Wanneer ik de alert net voor de init(); geef op de volgende manier:
code:
1
| <body onload="alert('foo');init();"> |
dan komt hij wel naar boven.
Dit wijst er dus op dat de fout toch in het samengestelde javascript bestand zit.
Na heel veel zoeken en proberen heb ik besloten session_start(); eens uit te zetten, en file2.js niet meer te includen (want daar heb ik sessions voor nodig).
Toen was het probleem compleet over!
Om eens te kijken of de goede gegevens wel in de session kwamen te staan besloot ik in file2.js voor de functie die de session variabelen gebruikt te kijken wat in de variabelen kwam te staan:
code:
1
2
| alert('<?php echo( $_SESSION['var1'] ); ?>');
alert('<?php echo( $_SESSION['var2'] ); ?>'); |
Als ik dan kijk heb ik twee situaties:
1. Ik krijg de twee alerts waarin de juist gegevens afgebeeld worden, de andere error blijft uit en alles werkt naar behoren.
2. De error die ik hierboven beschreven heb komt naar voren, en de twee alerts worden NIET afgebeeld.
Online krijg ik deze bug voor zover ik weet niet.
Wanneer een vriend van me over internet op mijn eigen server kijkt, krijgt hij de bug ook nooit.
FF en Opera geven de bug zoiezo nooit.
Het include.js bestande wordt absoluut benaderd, een andere manier is niet mogelijk omdat ik gebruik maar van een centrale template welke voor alle url's gebruikt wordt...
Weet iemand hoe ik de session nog verder kan controleren?
Is dit meer een server probleem dan een coding probleem??
-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net