You are not logged in.

  • Login

1

Tuesday, February 15th 2011, 6:39pm

Zwickmühle mit Javascript

Hallo leute!

Ich bastel gerade Freiwillig an einer Vereinshompage rum und zwar möchte ich die Seite einfach komplett neu aufsetzen da es nur eine alte Version gibt die von 1996 ist und seit dem immer wieder verbessert und geändert wurde und das ohne einhaltung irgenwelcher Doctypetypen oder html versionen und das ganze dann auch noch in solch einem schlechten Stil was formatierungen angeht das man gar nicht mehr durchblickt und stunden lang suchen muss wenn man was im code ändern möchte außerdem wurde das ganze noch mit frames gemacht !

So jetzt habe ich das ganze xhtml 1.1 konform aufgebaut habe css regeln verwendet usw. allerdings bin ich da nun auf ein kleines Problem gestoßen:
also ich habe auf der linken seite ein div element das ich als Navieiste benutze in der mitte steht ein weiteres div in dem eine Tabele steht um den Text anzuordnen jetzt möchte ich das ganze so gestalten das wenn ich auf ein link in der Navi leiste klicke der inhalt des in der mitte stehenden divs geändert wird das geht auch ganz gut mit JavaScript so jetzt gibt es da aber zwei Probleme :

1.
Die Seite sollte ja für jeden zugänglich sein ich denke da in erster Linie an die älteren Nutzer kann mir nämlich schon gut vorstellen wie die vorm rechner sitzen und eine Fehlermeldung erhalten "Sie Benötigen JavaScript!" .... " häää was ist JavaScript???" :)

2.
ist das irgenwie ein rießen Aufwand da eine der seiten die in diesem div aufgerufen werden soll eine Termin seite ist die praktische jede woche geändert wird wenn ich jetzt aber mit einer funktion auf die einzelnen tabelen Inhalte mit document.getElementById("").firstChild.nodeValue="" ; zugreife dann darf ich ja jede woche 1 bis 2 stunden damit verbringen mein Javascriptcode zu ändern um alle Formatierungen anzupassen usw.

Daher ist meine Frage geht das ganze nicht auch einfacher ???? Also wie gesagt ich möchte einfach die mitte der Seite ändern und nicht bei jedem klick eine neue Seite Aufrufen das ganze sollte auch ohne Frames funktionieren und auch ohne php da der Server kein php unterstützt außerdem wäre es wohl genau so kompliziert wie mit java script hat jemand eine Idee ??? bin auch für einen tollen javascript ansatz dankbar !!! dann lässt sich das problem das manche eben nicht draufzugreifen können nicht vermeiden !

2

Tuesday, February 15th 2011, 11:00pm

Zu 1.
Du könntest im HTML-Code Links auf HTML-Seiten machen und diese dann mittels JS entfernen oder modifizieren, so dass sie eine Javascript-Funktion aufrufen, zum Anzeigen der Seite. So könnten auch Leute ohne JS die Seiten angezeigt bekommen. Allerdings würden dann Redundanzen entstehen. Aber je nachdem, wie oft sich die Seite ändert, wären diese vielleicht noch tragbar.

Zu 2.
Ich kann mir das anhand deiner Erklärung leider nicht wirklich bildlich vorstellen. Hast du vielleicht ein paar Beispiele, die du online stellen könntest?
Aber soweit ich es verstanden habe, dürfte es ziemlich schwierig bzw. zeitaufwendig werden, das ohne JS zu machen.

3

Wednesday, February 16th 2011, 12:42pm

Hi Deadman danke für deine Antwort ich zeig dir mal ein paar beispiele :

du hast zunächst mal eine naviliste;

HTML Code

1
2
3
4
5
<div>
<a href=" ">Home</a>
<a href="> Termine </a>
<a href="> Aktuelles </a
</div>


das Div ist relativ positioniert und float:left

Also steht ein zweites div links neben der naviliste

HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div>
 
<tabel>
<tr>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
</div>


die tabelle im div mag etwas komisch aussehen aber ist dazu gedacht den text besser anordnen zu können jetzt mache ich folgendes sobald ich auf einen link in der navi leiste klicke greife ich mit java script auf die einzelnen tabelen einträge zu und füge text ein oder lösche text das funzt auch ganz gut nur leider ist das ganze Wall of Code da ich für jeden link praktisch eine neue java function brauche und auch für jede funktion if abfragen um zu prüfen ob überflüssiger text gelöscht werden muss oder ob benötigter text hinzugefügt werden muss ungefähr so :

JavaScript Code

1
2
3
4
5
6
7
8
9
10
if(document.getElementById("td4").firstChild == null && document.getElementById("td7").firstChild == null
&& document.getElementById("td41").firstChild == null && document.getElementById("td10") != null)
{
/*create a Element TextNode and append it on Element*/
var x= document.createTextNode("bla bla ");
document.getElementById("td4").appendChild(x);
/*create a Element TextNode and append it on Element*/
var y= document.createTextNode("bla bla bla ");
document.getElementById("td7").appendChild(y);
/*create a Element Img and append it on Elment */


und das ganze nochmal zum löschen :

JavaScript Code

1
2
3
4
5
6
7
8
9
10
11
/*if chosen Elements have a Child reset it */
 
if(document.getElementById("td4").firstChild != null && document.getElementById("td7").firstChild != null
&& document.getElementById("td41").firstChild != null )
{
 
document.getElementById("td4").removeChild(document.getElementById("td4").firstChild);
document.getElementById("td7").removeChild(document.getElementById("td7").firstChild);
document.getElementById("td41").removeChild(document.getElementById("bild"));
 
}


so jetzt ist die frage halt einfach ob ich das ganze nicht irgenwie etwas vereinfachen kann ohne jedes mal eine neue HTML seite für jeden link erstellen muss
aber ich bin auch zu der erkenntnis gekommen das das ganze ohne js wohl nicht funktionieren wird außer mann bedient sich der frames oder macht eben für alles eine eigene html seite die bei klick auf link aufgerufen wird was ich aber beides vermeiden wollte

so hoffe mein beispiel war jetzt verständlicher ?


Viele grüße

Social bookmarks