zab: Teil einer URL mit JS ersetzen und Seite neu laden

Hallo,

ich habe ein  - für mich - unlösbares Problem und wäre über Hilfe sehr erfreut!

Ich arbeite zur Zeit an einer Website, in der mehrere Farbversionen vorgesehen sind, unter denen der User wählen kann.
Dafü möchte ich eine Navigation auf der Seite anbieten, die durch einen Klick die andere Version der Seite läd.

Man soll auf jeder Seite die Möglichkeit haben, in die andere Farbversion zu springen. Ich möchte mir ersparen, in jede HTML-Datei die genauen Links einbauen zu müssen und habe auch den Aufbau der HTML-Dateien so gertegelt, dass die HTML-Seiten der einzelnen Farbversionen genau gleich sind, nur in verschiedenen Ordnern liegen mit einem anderen Stylesheet und anderen Bildern. Um das ganze aktualisierungsfreundlich zu halten, habe ich geplant uber PHP das Menü zu inkludieren und auch den Javascriptcode (wenn nötig) auszulagern.

Nun habe ich keine Ahnung wie ich den Javascriptcode schreiben muss.
Mein erster (ganz simpler) Ansatz war folgender:

Ich möchte einfach nur einen Teil der URL ersetzen, damit die Seite aus einem anderen Ordner geladen wird und ich keine direkten Links setzen muss und die Naviagtion beliebig erweitern kann! ... anstatt (farbe1) z.B. (farbe2) , oder (farbe3) usw.

<script type="text/javascript">
<!--
function replaceurl()
{
a = (document.location.href);

b = a.replace(/farbe1/,farbe2);

document.location.href = b;

//-->
</script>
......

im body dann:  <a href="javascript: replaceurl()">SUPERLINK</a>

Vielleicht könnt ihr mein Anliegen nachvollziehen und checkt die Lage etwas besser als ich, denn ich bin absoluter JS-Anfänger wie man sieht ;).

einen freundlichen gruß
sednet euch sebastian

  1. Hi,

    Ich arbeite zur Zeit an einer Website, in der mehrere Farbversionen vorgesehen sind, unter denen der User wählen kann.

    klarer Fall für Content-Negotiation, siehe die Artikel unter http://aktuell.de.selfhtml.org/. Es reicht, eine jeweils andere CSS-Ressource anzubieten.

    Um das ganze aktualisierungsfreundlich zu halten, habe ich geplant uber PHP das Menü zu inkludieren und auch den Javascriptcode (wenn nötig) auszulagern.

    Wenn Du PHP zur Verfügung hast, warum willst Du dann hierfür JavaScript einsetzen?

    Ich möchte einfach nur einen Teil der URL ersetzen, damit die Seite aus einem anderen Ordner geladen wird

    Ich denke, mittels Content-Negotiation lässt sich hierfür eine optimiertere Logik finden.

    im body dann:  <a href="javascript: replaceurl()">SUPERLINK</a>

    Der Verzicht auf JavaScript hat übrigens zudem den Vorteil, dass jeder in den Genuss Deiner Farbwahl kommt, nicht nur ca. 80% Deiner User.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. klarer Fall für Content-Negotiation, siehe die Artikel unter http://aktuell.de.selfhtml.org/. Es reicht, eine jeweils andere CSS-Ressource anzubieten.

      Nur mit CSS geht es leider nicht, da ich Bilder eingesetzt habe,
      die farblich noch mal angepasst sind. Es geht mir auch nicht darum, die Seite mit PHP zu organisieren, denn das beherrsche ich noch nicht.

      Ich möchte meine gestalterischen Fähigkeiten präsentieren und die Sache mit dem Javascript ist schon wohl überlegt!!!

      Wenn Du PHP zur Verfügung hast, warum willst Du dann hierfür JavaScript einsetzen?

      Hat sich damit erledigt, aber trotzdemm danke für den Hinweis.

      Ich denke, mittels Content-Negotiation lässt sich hierfür eine optimiertere Logik finden.

      ich werde es mir auf jeden fall mal anschauen!!

      Der Verzicht auf JavaScript hat übrigens zudem den Vorteil, dass jeder in den Genuss Deiner Farbwahl kommt, nicht nur ca. 80% Deiner User.

      Auf Java-Script möchte ich auf keinen Fall verzichten! Bin keine Purist und auch keine Sicherheitfanatiken.
      Wenn ein Kunde so bedient werden will - dann bitteschön.
      ich aber liebe die interaktivität mit JS.

      Gruß
      Sebastian

      (danke für deine Aufmerksamkeit)

      1. Hi,

        klarer Fall für Content-Negotiation, siehe die Artikel unter http://aktuell.de.selfhtml.org/. Es reicht, eine jeweils andere CSS-Ressource anzubieten.

        Nur mit CSS geht es leider nicht, da ich Bilder eingesetzt habe,

        und was hindert Dich daran, im CSS content:url(...) einzusetzen? ;-)

        Es geht mir auch nicht darum, die Seite mit PHP zu organisieren, denn das beherrsche ich noch nicht.

        Das solltest Du aber erlernen, denn dieses rein clientseitig zu lösen, ist nicht nur problembehaftet, sondern zwingt Dich immer in die Abhängigkeit einer nicht vorauszusetzenden clientseitigen Technik.

        Ich möchte meine gestalterischen Fähigkeiten präsentieren und die Sache mit dem Javascript ist schon wohl überlegt!!!

        Ich glaube Dir gerne, dass Du darüber intensiv nachgedacht hast und von Deinen Schlüssen überzeugt bist. Allerdings bin ich der Ansicht, dass Deine Schlüsse in Unkenntnis aller Fakten gezogen wurden :-)

        Der Verzicht auf JavaScript hat übrigens zudem den Vorteil, dass jeder in den Genuss Deiner Farbwahl kommt, nicht nur ca. 80% Deiner User.

        Auf Java-Script möchte ich auf keinen Fall verzichten! Bin keine Purist und auch keine Sicherheitfanatiken.

        JavaScript ist als Hilfsmittel hervorragend einsetzbar - wenn _jede_ Funktionalität auch ohne JavaScript zu 100% gewährleistet ist. Andernfalls wird es falsch eingesetzt.

        Wenn ein Kunde so bedient werden will - dann bitteschön.

        Du hast eine Beratungspflicht. Als Experte bist _Du_ es, der dem Kunden die Probleme seiner Wünsche mitzuteilen hat - wenn Du vom Kunden erwartest, die Details Deines Fachgebiets abzuwägen, dann lass es ihn doch besser gleich selbst erledigen; offenbar traust Du es ihm zu.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Hi

          du hast mit Sicherheit recht!
          Doch bringt mich das im Moment nicht weiter,
          denn ich kann nicht mal eben an einem tag PHP lernen,
          noch die Javascript-Funktionalität meiner Seite umstricken.

          Ich möchte für den Moment nur einen einfache, simple oder meinetwegen
          auch stupide ;) Javascript-"Lösung" einbauen. Wenn ich das geschafft habe, dann kann meine Seite endlich in der Form online nehmen, wie ich mir das in den (Dick)Kopf gesetzt habe.

          Über Hilfe wäre ich nach wie vor dankbar!!!

          ich werde das Thema dann wohl noch mal unter einem anderen Namen eröffnen und am Anfang gleich klarstellen, dass ich es mit JS machen WILL.

          Ich weiß deinen Ratschläge und Hinweise aber auf jeden fall zu schätzen und meine Antwort soll nicht abschätzig oder unerfreut klingen.

          Einen freundlichen Gruß
          sendet dir Sebastian
          (der wenn er mal Zeit dafür hat, sich auch um praktikablere Lösung bemüht und bei seinen Kunden erstmal die größtmögliche Dummheit und Unwissenheit vorraussetzt)

  2. Moin!

    Ich arbeite zur Zeit an einer Website, in der mehrere Farbversionen vorgesehen sind, unter denen der User wählen kann.
    Dafü möchte ich eine Navigation auf der Seite anbieten, die durch einen Klick die andere Version der Seite läd.

    Nun habe ich keine Ahnung wie ich den Javascriptcode schreiben muss.
    Mein erster (ganz simpler) Ansatz war folgender:

    Ich möchte einfach nur einen Teil der URL ersetzen, damit die Seite aus einem anderen Ordner geladen wird und ich keine direkten Links setzen muss und die Naviagtion beliebig erweitern kann! ... anstatt (farbe1) z.B. (farbe2) , oder (farbe3) usw.

    <script type="text/javascript">
    <!--
    function replaceurl()
    {
    a = (document.location.href);

    b = a.replace(/farbe1/,farbe2);

    document.location.href = b;

    //-->
    </script>
    ......

    im body dann:  <a href="javascript: replaceurl()">SUPERLINK</a>

    Wenn du deine Seitenstruktur absolut identisch (nur mit anderen Inhalten) in verschiedenen Hauptverzeichnissen replizierst, kannst du eine schöne Lösung so realisieren:

    Die Funktion basiert darauf, dass als erstes in der URL ein immer die gleiche Anzahl an Zeichen langer String das Verzeichnis bestimmt.

    function changelang(to_lang)
    {
      window.location.href = "/"+to_lang+window.location.pathname.substring(3)+window.location.search
      return false;
    }

    Wie vielleicht zu erkennen ist, habe ich die Funktion geschrieben, um in der URL vorne /XX/hiergehts/weiter.html jeweils zwei beliebige Zeichen durch den Inhalt des Parameters to_lang zu ersetzen. Für "schnell-schnell" reicht das - und meine beiden Hauptverzeichnisse heißen "/de/" und "/en/" - es geht also um eine Sprachauswahl, aber genausogut kann man damit Farben wählen.

    Der Clou kommt jetzt:
    <a href="/en/index.html" onclick="return changelang('en');">

    Mit diesem Link kommen alle Javascript-Nutzer auf die identisch benannte Seite im Verzeichnis "/en/", alle Nicht-Javascript-Nutzer kommen aber wenigstens auf die Startseite dieser Sprache. Deine Besucher können also in jedem Fall über die Links eine Farbe wählen und sich dann innerhalb dieser Farbe bewegen. Der Farbwechsel funktioniert überall, die Leute mit Javascript kommen sogar auf die zugehörige Seite.

    Wenn dir dieses Prinzip für javascript-lose Besucher nicht gefällt: Du hast PHP! Damit kann man diesen Workaround (den ich mir ausgedacht habe, weil das benutzte CMS-System das nicht ohne Mega-Aufwand kann) gleich ganz weglassen.

    Wenn du mit PHP weißt, wo du bist (und die Variable $_SERVER['PHP_SELF'] sagt es dir), dann kannst du den Link immer dynamisch zusammenbasteln und links dann vollkommen ohne Javascript auf die anderen Farben. Das Prinzip der Dateinamenersetzung bleibt dabei grundsätzlich gleich.

    Wenn du eine schöne Lösung bastelst, dann packst du die Ausgabe der Farbwahl-Links gleich in eine schöne Funktion. Wenn du gut bist, kriegst du auch unterschiedlich lange Verzeichnisnamen hin (schließlich ist das erste Verzeichnis ja eindeutig am "/" zu erkennen).

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)