"out of memory at line..." (nur mit IE)
Markus
- javascript
0 mbr
hallo,
ich versuche mich gerade an meinem ersten javascript...
es soll folgendes machen:
ich habe eine 3x3 zellen große tabelle mit 5 Techniken und 4 Produkten die miteinander kombiniert werden können. wenn man eine der techniken anklickt wird man dazu aufgefordert noch ein produkt zu wählen und umgekert.
die freude war dementsprechend groß, als es im firefox nach relativ kurzer zeit klappte... doch sie währte nicht lange, da der IE mir einen
"out of memory at line: 75", wenn ich noch eine technik anklicke, nachdem ich schon einmal produkt und technik kombiniert habe und "out of memory at line: 107 wenn ich noch ein produkt anklicke bringt :/
anzusehen ist meine seite hier:
http://www.corscience.de/testing/table.html
vielen dank schonmal,
markus
Hallo Markus
hab mir das javascript jetzt mal angeschaut und die Seite bei mir lokal nachgebaut (den Fehler im IE konnte ich bestätigen - sonst hätte ich garnicht angefangen ;-) )
Also: es sieht so aus, als ob die Verwendung der (globalen?) Variablen selected_p und selected_t das Problem ist. Diese beiden Variablen sind jawohl, wenn ich SELFHTML richtig interpretiere global. (Zitat: "Wenn Sie innerhalb von Funktionen Variablen ohne das Schlüsselwort var deklarieren, dann sind diese Variablen global."). Vielleicht mag es der IE nicht, wenn man globale Variablen innerhalb einer Funktion mit delete löscht?
Wie auch immer: ich hab das Problem noch nicht richtig durchdrungen, kann dir aber trotzdem eine Lösung vorschlagen:
Ich hab jetzt mal folgende Änderungen an deinem Skript vorgenommen:
//zwei globale Variablen fuer gewaehlte produkte und gewaehlte Techniken
var selected_t=0;
var selected_p=0;
am Beginn des Skriptes eingefuegt
if(undefined === window.selected_p){
ersetzt durch
if(selected_p==0){
if(undefined === window.selected_t){
ersetzt durch
if(selected_t==0){
delete selected_t;
delete selected_p;
ersetzt durch
selected_t=0;
selected_p=0;
Dann funktioniert es auch im IE. Ob die Verwendung von globalen Variablen natürlich schön ist, ist eine andere Sache.
liebe Grüße mbr