Zum Inhalt springen

rgtabs und trigger im head

Erstellt am 27. September 2007 · 19 Antworten · letzte Antwort am 21. März 2008

Tags: JavaScript & AJAX, Frage

eriks ·

Hallo Leute, hallo Georg

Wir bauen unsere neue Webseite um, und weil es sich hier um keinen Kunden handelt, sind wir nicht zimperlich neue Sachen auszuprobieren. Daraus entstehen jedoch einige Probleme. Hier das aktuellste davon:

Wir setzen ein Flashmenü ein, welches sich dynamisch per XML die Seitenstruktur holt und diese darstellt (inklusive Links). Der Inhalt wird mit Hilfe der mootools in ein Target-DIV geladen, ohne dass die ganze Seite neu geladen werden muss (mit dem Flash-Menü wäre das echt hässlich).

Hier kommt das Problem mit den rgtabs, welche jedes Mal ein unterschiedliches Javascript im Head der Seite schreiben (der DIV-Name variiert je nach CE). Hier ist ein Link zu der stripped-down Version, damit man sich auf das Wesentliche konzentrieren kann:

http://neu.future-media.ch

und hier das dynamische XML:

http://neu.future-media.ch/index.php?id=3&type=555

Wie ihr sieht, kommt die erste Seite gut und rgtabs funktioniert auch prima, weil die DIV-Namen stimmen und der trigger im Head ausgelöst wird. Wenn man einen Punkt im Menü anklickt, wird der Inhalt zwar richtig geladen, aber mit einen anderen DIV-Namen von rgtabs.

Wenn man die Unterseiten direkt lädt, funktioniert rgtabs wieder:

http://neu.future-media.ch/index.php?id=145
http://neu.future-media.ch/index.php?id=286

Fällt jemandem etwas ein, wie man diese Konstellation zum Laufen bringen könnte? Mir kommt nur das in den Sinn:

1. Den Trigger von rgtabs statt im Head im Body der Seite als funktion ausgeben und gleich ausführen.

2. Weil aber per Ajax geladene Javascripte nicht ausgeführt werden, müsste ich am Ende meiner Lade-Funktion die rgtabs-Funktion aufrufen.

Dabei sehe ich (ohne es ausprobiert zu haben) folgende Probleme:

1. Ich müsste in rgtabs Änderungen machen - unschön und nicht update-freundlich

2. weil die rgtabs-Triggerfunktion gleich nach dem Klick ausgeführt wird, wird der eigentliche Inhalt noch nicht geladen sein. OK, man kann auch ein timeout setzen, aber wie lange? Das wird bei langsamen Leitungen nicht reichen, bei schnellen wird der Benutzer zuerst alle CEs untereinander sehen, damit sich diese dann plötzlich zusammensetzen ...

Da ich kein Profi bin, wäre ich für allfällige Lösungsansätze sehr dankbar.

lg, Erik

Unbekannter Benutzer ·

Kannst du nicht die Headerinformationen mit laden und dann ausführen?
Was besseres fällt mir im Moment nicht ein, ich denke die Extension zu modifizieren wäre wohl die beste Möglichkeit.

Darf ich die ketzerische Frage stellen, warum ihr dieses Menü mit Flash macht? Kann das irgendetwas, was nur mit Flash geht? Es gibt nämlich immernoch Plattformen für die kein Flash verfügbar ist.

Grüße
Christian

eriks ·

Hallo Christian

Laut unserer Statistik (wir werten auch die Zugriffe für unsere Kunden mit awstats aus) ist Flash bei 96% verfügbar (awstats kann das loggen). Und wer es nicht nützt, ist selber schuld, der kriegt die statische Variante präsentiert.

Warum wir es einsetzen? Es sieht viel besser als jedes statische Menü aus, und weil Homepages nicht nur ein Ersatz für Drucksachen sind, ist das Kundenerlebnis genau so wichtig wie die trockene Information.

Viele Grüsse,
Erik

eriks ·

Sorry, jetzt habe ich unter "Startseite" ein paar Unterseiten erstellt, damit man den Unterschied mit und ohne Flash besser sehen kann ... Bei der ersten Variante war die Frage natürlich absolut berechtigt 🙂

Unbekannter Benutzer ·

Hehe, OK, so macht es schon mehr Sinn, auch wenn man das auch per JS lösen könnte, aber solange es eine statische Variante gibt, ist es ja gut. Ich weiß, dass das eine Minderheit darstellt und es geht z.B. bei mir gar nicht ums wollen sondern ums können. Ich habe zusätzlich zu Windows noch ein 64-bit Linux laufen und dafür gibt es keinen (offiziellen) Flashplayer und wenn ich da gerade am Entwickeln bin und was suche ärgere ich mich immer über Seiten, die dann völlig unbrauchbar sind, weil man keinen Adobe Flashplayer hat...

eriks ·

Ich verschiebe mir den Schwerpunkt des Threads selber, aber weil ich auch nicht unbedingt Adobe unterstützen will (Flash ist trotzdem geil und die Entwicklung ist zum Gegensatz von DHTML um einiges schneller), habe ich mal nach Alternativen gesucht. Schon mal Gnash angeschaut:

http://www.gnu.org/software/gnash/

P.S. Leute, bitte trotzdem versuchen meine Frage zu beantworten, ich habe immer noch keine Lösung ...

eriks ·

Hallo Georg

Auf den Punkt gebracht, heisst es:

Ist es möglich, das Skript, welches du bei rgtabs im head der Seite schreibst, nämlich:

<script type="text/javascript">
// jetzt steht es im <head>

window.addEvent('domready', function() {
 var tabs580 = new SimpleTabs($('rgtabs580'), {
  entrySelector: 'h4'
 });
});
</script>

stattdessen im body als Funktion auszugeben? Etwa so:

<script type="text/javascript">
// das wäre dann im <body>

function doRgTabs () {
 window.addEvent('domready', function() {
  var tabs580 = new SimpleTabs($('rgtabs580'), {
   entrySelector: 'h4'
  });
 });
}

doRgTabs ();

</script>

Gibt es etwas, was dagegen sprechen würde?

eriks ·

Hallo Georg

Du bist wirklich fantastisch! OK, ich sehe schon - längerfristig werden wir sicherlich auf den accordion umsteigen.

Um diesen Thread abzuschliessen:

Im Moment funktioniert unsere Konstellation nicht. Mögliche Auswege sind:

1. auf die Accordion-Ext. von Georg umzusteigen -> wasserdicht

2. rgtabs zu modifizieren und somit update-untauglich zu machen -> zeitraubend

Georg, Christian, vielen Dank für eure Unterstützung!

just2b ·

weitere vorteile von meinem
- funktioniert ohne flash, und ohne js (dann nicht mehr so schön)
- auch nicht groß, mootools dafür 20kb, wenn man die tabs ohnedies braucht, dann noch weniger
- mit CSS voll stylebar
- suchmaschinen mögens

nachteil noch: aktiver zustand ist noch nichts aufgeklappt, sollte sich aber noch hoffentlich ändern

georg

eriks ·

einfach geil :o

mit Georg ist nicht zu spassen - man braucht nur eine kritische Frage zu stellen und schon ist eine neue Extension oder zumindest ein major update einer bestehenden von just2b da!

Hoffentlich kann ich auch bald sinnvolle Antworten posten, sonst stehe ich dem Forum langsam in Schuld ...

just2b ·

Hallo,

man muss nicht unebdingt im Forum schreiben um TYPO3 was gutes zu tun, aber natürlich sind auch Leute wichtig die antworten 😉

schönen abend noch
georg

lucas ·

hi leute!

erstmal ein lob an georg und just2b!
kann es sein, dass accordion und rgtabs nicht zusammen auf einer seite funzen?

danke für euer hilfe!

lucas