Ik ben bezig met een applicatie te maken die om de 1 second een woord op het scherm plaatst die hij uit de database haalt, om dit te doen zonder te refreshen moet ik gebruik maken van ajax.
Nu werkt dit heel goed in Chrome en Firefox maar heb ik problemen met IE 8, lagere versies ook. Het probleem is echter niet makkelijk te achterhalen vermits hij op andere momenten blijft hangen en hij op sommige PC's, ook met IE 8, wel goed gaat.
Hieronder vind je de error en de code :
Message: 'document.getElementById(...)' is null or not an object Line: 42 Char: 1 Code: 0 URI: http://axonet.be/projects/yzebaert/system/js/ajax.js
Wat heb ik al geprobeerd :
- De innerhtml te vervangen door een functie omdat IE innerhtml niet ondersteund. Dit was zonder resultaat want het bleef nog op bepaalde ogenblikken hangen.
Nu werkt dit heel goed in Chrome en Firefox maar heb ik problemen met IE 8, lagere versies ook. Het probleem is echter niet makkelijk te achterhalen vermits hij op andere momenten blijft hangen en hij op sommige PC's, ook met IE 8, wel goed gaat.
Hieronder vind je de error en de code :
Message: 'document.getElementById(...)' is null or not an object Line: 42 Char: 1 Code: 0 URI: http://axonet.be/projects/yzebaert/system/js/ajax.js
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| /* comment voor lijnen goed te zetten */ sessvars.step = sessvars.step || 1; var seconds = 1; var divid = "words"; var woord = 0; var url = "generatewords.php"; var aantalwoorden = 15; //////////////////////////////// // // Refreshing the DIV // //////////////////////////////// function refreshdiv(list){ setTimeout(function(){document.getElementById(divid).innerHTML = "";},1000); // The XMLHttpRequest object var xmlHttp; try{ xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari } catch (e){ try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer } catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("Your browser does not support AJAX."); return false; } } } var nocacheurl = url+"?num="+woord+"&list="+list; // The code... xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ document.getElementById(divid).innerHTML=xmlHttp.responseText; if(woord == aantalwoorden) { setTimeout('doorsturen()',1000) } else { setTimeout("refreshdiv('"+list+"')",seconds * 1000); } } } xmlHttp.open("GET",nocacheurl,true); xmlHttp.send(null); woord = woord + 1; } // Start the refreshing process function doorsturen(){ window.location="./words.php?step="+sessvars.step+"&act=invoer"; sessvars.step++; } |
Wat heb ik al geprobeerd :
- De innerhtml te vervangen door een functie omdat IE innerhtml niet ondersteund. Dit was zonder resultaat want het bleef nog op bepaalde ogenblikken hangen.