mmofacts.com

Javascript Tabelle

gepostet vor 18 Jahre, 4 Monate von Aviator
Ich möchte per Javascript eine Tabelle generieren. Im FF klappts, nur der IE will nicht. Hat jemand eine Idee?

var t = '';
for(r=0;r<=3;r++){
t+='';
for(c=0;c<=3;c++){
t+='';
}
t+='';
}
document.write(t);
gepostet vor 18 Jahre, 4 Monate von TheUndeadable
Klappt bei mir im IE einwandfrei.
Hast du einen Link wo man auf deine Seite zugreifen kann?
gepostet vor 18 Jahre, 4 Monate von Aviator
Bitte:

Im" target="_blank">http://www.aviator-assault.de/memory.php
Im FF seh ich sofort die Bilder, im IE nicht
(keine Angst, Javascript ist aktiviert!)
DEer IE meldet auch "Fehler auf der Seite"
gepostet vor 18 Jahre, 4 Monate von TheUndeadable
Der IE ist etwas strikter als die anderen Browser:
EDIT: Er is nicht strikter, er hat nur ein anderes, veraltetes Objektmodell.
gepostet vor 18 Jahre, 4 Monate von knalli
Das ist ja ekelhaft
Also erstmal, um deine Frage zu beantworten.. ne. Ich würde den IE-Debugger mal verwenden, und mal gucken, was der dazu sagt. Außerdem empfehle ich auch den Debugger im Firefox bzw den erweiterten von Firebug (eine Extension für Firefox); damit kannst du dein JavaScript optimieren. Denn nur weil es im Firefox klappt, heißt es noch lange nicht, das es sauber ist.
Aaaaaaber..
Ich schlage dir folgendes vor: Generiere die Tabelle richtig, und zwar mit DOM. Macht imho streng genommen nur Sinn, wenn du XHTML verwendest, aber bei einer Tabelle gehts eigentlich auch im normalen HTML
Wie?
Irgendwo im Code hast die Stelle, wo die Tabelle hin soll, sagen wir zB:

Weil es ein span ist (und überdies leer) wird es nicht auffallen, wenn ZB der Browser kein JavaScript kann. Du könntest es auch vorbelegen

Achtung, dein Browser unterstützt kein Javascript, um diese Tabelle anzuzeigen
Im Kopf deiner Seite steht dann

...
function generateTable(){
var platzhalter = document.getElementById("hierkommtmeinetabellehin");
var neueTabelle = document.createElement("table");
neueTabelle.setAttribute("cellspacing", "1");
neueTabelle.style.border = "1px";

var xtr, xtd, xa, ximg;
for(r=0; r<3; r++){
xtr = document.createElement("tr");
for(c=0; c<3; c++){
xtd = document.createElement("td");
xa = document.createElement("a");
xa.setAttribute("href", "#");
xa.onclick = function(){ showimage((4*r)+c); this.blur(); }
ximg = document.createElement("img");
ximg.setAttribute("src", "image0.gif");
ximg.setAttribute("name", "img"+((4*r)+c));
ximg.style.border = "0px";

xa.appendChild(ximg);
xtd.appendChild(xa);
xtr.appendChild(xtd);
}
neueTabelle.appendChild(xtr);
}
platzhalter.parentNode.replaceChild(neueTabelle, platzhalter);
}
window.onload = generateTable;
...
Das sollte eigentlich auch überall laufen..
So, eine gute Tat gemacht.
edit: auf dein memory hin habe ich mal Firebug angeworfen.. der meldet ein paar ungereimheiten:

Später wurden dann Piratenbilder angezeigt, aber ohne Klickwirkung.
gepostet vor 18 Jahre, 4 Monate von Aviator
Boing!!
Da sieht man den Wald vor lauter C's nicht...
Danke!
gepostet vor 18 Jahre, 4 Monate von Goltergaul
Was anderes: Willst du das wirklich dazu benutzen den Spielskill zu trainieren? Ich mein den rückgabewert eines JS kann man total leicht fälschen^^
gepostet vor 18 Jahre, 4 Monate von Aviator
Naja, ganz sicher wird es wohl nicht geben, aber ich wollte einen neuen Weg beim skillen gehen. Nur aufgrund von Ressourcen oder Erfahrungspunkten den Skill zu erhöhen fand ich langweilig. So muss der Spieler sich schon etwas anstrengen.
Ich fürchte wenn jemand cheaten will, dann findet er einen Weg... leider.
Ich übergebe den Wert von JS in ein "hidden" Formularfeld, dann per Formular an ein PHP Script welches diesen dann in der DB speichert.
Vielleicht nicht ganz so einfach zu umgehen wie die Übergabe per URL.
gepostet vor 18 Jahre, 4 Monate von Klaus
Alles was vom Benutzer beim Server ankommt kann verfälscht worden sein. allerdings hast du so überhaupt keine Möglichkeit das zu kontrollieren und ein verstecktes Formularfeld ist kein großes Hindernis.

Auf diese Diskussion antworten