HTML Ist JS Zugriff auf generierten Code möglich?

QuHno

Außer Betrieb
Browserspiel (war: Ist JS Zugriff auf generierten Code möglich?)

Auf folgender Seite habe ich eine kleines Spiel mittels Javascript generiert:
Funktionierende erste Version, statischer Aufbau des Spielfeldes, mit ziemlich grauenhaftem HTML und JS Code - war halt hingesaut;)

Link zur Testversion, kann ab und zu kaputt sein, da das eine Arbeitsversion ist. Die Grafik ist kaputt, das ist noch absichtlich, da ich die erst erstelle, wenn der Code fertig ist.
Direkter Link zur JS Datei zum hineinsehen, für die gilt das gleiche :D

Nun stellt sich die Frage, ob man im mittels innerHTML generierten Code nachträglich z.B. den Inhalt des src Attributs der Bilder austauschen kann (derzeit sind alles Leerbilder ;))

Wenn in mir mit Opera Dragonfly den DOM Baum ansehe, sind die Elemente darin enthalten, also wären sie auch ansprechbar, aber ich weiss nicht, ob das bei allen anderen Browsern auch so ist.

Klappt das auch mit anderen Browsern und wenn ja, bei welchen?

edit: Ja, es klappt.

Falls mit innerHTML Schwierigkeiten bekannt sind (ich glaube da mal so etwas gehört zu haben):
Würde der Ansatz über createElement(), createTextNode(), appendChild() helfen?
 
Zuletzt bearbeitet:
Hallo!

Bin nicht ganz sicher ob ich das richtig verstanden habe. Du willst nachträglich die Bilder in den einzelnen Zellen ändern???

Ich würde das wie folgt versuchen, den Bildern eine Id zuordnen (so wie beim namen).
also: <img src="bild.jpg" id = "bild1" /> und dann mittles document.getElementById("bild1").src einen neuen pfad zum Bild setzen. Hab das jetzt zwar nicht ausprobiert ob das funktioniert, aber sollte eigentlich so funktionieren.
 
Jo, ich mache es in der älten Version des zu dynamisierenden Projekts über das name Attribut, das macht es so schön einfach, wenn man mit Schleifenzählern arbeitet, man kann name aber auch ohne Abstriche durch id ersetzen das ändert nichts
edit: außer der Größe des Dokuments, hab's deswegen grad geändert :D

Code:
document.images["board" + colloop + rowloop].src = countercpu.src;
reicht zum Austausch des Codes normalerweise aus.

Das hier soll dynamisiert werden, so dass ich einfach die Boardgröße verändern kann. Bitte nicht zu genau in den Code sehen, der ist übel, weil hingesaut, aber er funktioniert ;)

Die Frage ist eher ob andere Browser es verstehen, wenn man so generierten Inhalt später verändert, weniger wie man den Inhalt verändert :D

edit: Erledigt.
Im IE6 geht's geht's und in Opera 10 geht's - also im ältesten Browser und dem modernsten Browser, den ich unterstützen will - na ja, modernere in späteren Jahren sollten es auch können - und alles ohne Browser spezifischen Code :D

Falls es in irgendeinem anderen grafischen Browser nicht funktionieren sollte, gibt es also keine Entschuldigung - außer es ist Netscape4 oder so etwas :rofl

Ich würde mich aber dennoch freuen, wenn jemand von Problemem berichten würde (außer Layout und Validität nach W3C, das ist beides noch für's Hinterteil, ich weiss. Ist ja auch nur ein Testfall, an dem noch gescribbelt wird)
 
Zuletzt bearbeitet:
hmm. der link funktioniert bei mir nicht.

Darf ich mal fragen, warum du eigentlich eine table mit javascript zusammenbaust? Gibt es einen besonderen Grund warum du das mit JavaScript machst?
 
Ja, dadurch soll ermöglicht werden, die Größe des Spielfelds mit Hilfe einer Auswahl zu verändern, ohne dass ich zig neue Webseiten machen muss in denen ich jeweils eine statische Tabelle einbaue. Wenn es einmal fertig ist, soll es so sein, dass man den Aufruf der JS Datei einfach irgendwo in einer Webseite platziert und das gesamte Spiel an der Stelle aufgebaut wird.

Falls es andere Client-seitige Möglichkeiten gibt, eine dynamisch veränderbare Tabelle zu bauen, bin ich für Vorschläge und Ideen jederzeit offen :)

Klappt auch soweit, allerdings habe ich derzeit noch ein kleines Koordinatenübergabe Problem, wenn ich auf >10*10 Felder gehen will - Hilfe bei der Lösung ist jederzeit willkommen ;) Hat sich auf die harte Tour erledigt, einfach die Koordinaten auf 4 stellig umgestellt und das ganze so lange in den JS Debugger reinkrachen lassen, bis ich alle Stellen gefunden hatte, wo es kracht. Danach jeweils ein kurzer Stacktrace, um heraus zu finden woher der Aufruf kam, jeweils an den passenden Stellen geändert und Ruhe war. Warum hab ich das eigentlich nicht gleich so gemacht? :unsure: :ROFLMAO:
Code:
var axgameboardwidth = 7;
in der JS Datei verändert die Größe des Feldes.




PS: Der Link im ersten Posting funktioniert wieder, ich hatte zwischenzeitlich eine kaputte Testversion hochgeladen, weil ich einen Blackout hatte und jemand in den kaputten Code sehen wollte, um mir zu helfen :D

Und noch einen verkleinerten Screen von einem denkbar knappen Testspiel :D
 

Anhänge

  • 20090303ataxxscreen.png
    20090303ataxxscreen.png
    3,9 KB · Aufrufe: 235
Zuletzt bearbeitet:
<schieb> :D

Es hat sich einiges getan und ich verliere immer noch gegen das eigene Script :cry:

Erst ein Mal ein herzliches Dankeschön an alle, denen ich per ICQ auf die Nerven gefallen sind und die immer wieder testen mussten, ob noch alles läuft (y) :)

Dafür sieht es jetzt etwas besser aus als beim letzten Mal :D

Liebe Firefox User, bitte schaltet die Animation nicht ein, die zerwürfelt er, da er die per Script eingesetzten Animationen nicht sauber voneinander trennen kann und immer mehrere startet - das kann ja sogar der IE6 schon besser - aber die 3.1 (oder so) steht ja auch schon vor der Tür ;)

(Angehängter Screenshot stark verkleinert)
 

Anhänge

  • screenshot.png
    screenshot.png
    80,3 KB · Aufrufe: 238
Oben