Martin Hein: href=# | Paramter gehen verloren

Hallo Forum,

ich habe einen Link in meiner Anwendung, der eine JS-Funktion
aufruft:

<a href="#" onclick="setfontsize('15px');">...</a>

... das funktionierte soweit bisher. Aber nun tritt ein Phänomen
auf, dass ich in den Griff bekommen muss:

Um mit mod_rewrite arbeiten zu können, habe ich im <head>:

<base href="http://<?=$_SERVER['SERVER_NAME'];?>/_content/" />

definiert. Das führt dazu, dass die URL "/_content/?site_id=120"
nicht nach "/_content/?site_id=120#" führt, sondern nach
"/_content/#". Das erscheint mir auch irgendwie logisch, führt
aber dazu, dass der Link nicht mehr funktioniert.

Meine Frage:
------------
Muss ich mir für mod_rewrite eine andere Lösung einfallen lassen,
oder kriegt man das mit HTML in den Griff ?

danke für eure Meinung und

beste gruesse,
martin

  1. Hello,

    <a href="#" onclick="setfontsize('15px');">...</a>

    was soll der Link eigentlich tun - nichts, oder? Du willst lediglich die Funktion ausführen, der href ist nur zur Dekoration da (korrigier mich, wenn ich falsch liege). Also sorg einfach dafür, dass der Link nicht mehr greift:
    onclick="setfontsize('15px'); return false;"

    MfG
    Rouven

    --
    -------------------
    When the only tool you've got is a hammer, all problems start to look like nails.
    1. Hi,

      sorry, ich war wohl zu kurz angebunden mit meiner Erklärung ;)

      Dein Vorschlag liegt nahe. Könnte man in diesem Fall sicher
      so lösen.

      Ich habe dabei eher daran gedacht, dass eigentlich nun ach kein
      in der Form definierter Textanker funktionieren dürfte.

      beste gruesse,
      martin

      1. Dein Vorschlag liegt nahe. Könnte man in diesem Fall sicher
        so lösen.

        Du möchtest also einen Reload der Seite? Oder besorgst du die (vermutliche) Größenänderung via Javascript? Wozu rufst du die JS-Funktion auf, wenn du die Seite gleich wieder "verwirfst"?

        Ich habe dabei eher daran gedacht, dass eigentlich nun ach kein in der Form definierter Textanker funktionieren dürfte.

        Eventuell hilft [QSA] (siehe Doku zu mod_rewrite, bin jetzt zu faul zum Suchen).

        Siechfred

        --
        Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
        1. Du möchtest also einen Reload der Seite? Oder besorgst du die (vermutliche) Größenänderung via Javascript? Wozu rufst du die JS-Funktion auf, wenn du die Seite gleich wieder "verwirfst"?

          Nein, ich möchte keinen Reload der Site. Dass im Link href=#
          definiert ist, führt natürlich dazu. Da bin ich bisher schlicht
          nicht drüber gefallen, weil's funktionierte. Die Grössenänderung
          funktioniert mit Javascript.

          Ich habe auch zum ersten Mal mit mod_rewrite gearbeitet. Als das
          Umleiten funktionierte (Die 'Fake'-URL also mit dem 'richtigen'
          Inhalt angezeigt wurde) bekam ich ein Problem mit den Links, die
          alle relativ definiert sind. Das konnte ich sauber mit der
          "base href"-Angabe im <head> lösen und alles war gut ;) Das
          Problem mit href=# habe ich erst jetzt festgestellt und dabei geht
          es, wie gesagt, viel weniger um diese eine Stelle mit dem JS-
          Funktionsaufruf, sondern vielmehr um Textanker, die nun auch nicht mehr funktionieren dürften.

          Kann man dem Problem mit den relativen Links unter 'Fake'-URLS
          anderes begegnen, als mit der Angabe von "base href" im <head>
          ??

          beste gruesse,
          martin

          1. hi,

            Kann man dem Problem mit den relativen Links unter 'Fake'-URLS
            anderes begegnen, als mit der Angabe von "base href" im <head>
            ??

            Klar, in Bezug auf die Domainwurzel referenzieren.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. hi,

              Klar, in Bezug auf die Domainwurzel referenzieren.

              merci, versteh aber mal wieder nicht, was Du meinst ;(

              (die relativen Links im Content kann ich nicht verändern)

              beste gruesse,
              martin

              1. hi,

                (die relativen Links im Content kann ich nicht verändern)

                Warum nicht?

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. hi,

                  Warum nicht?

                  Die Seiten werden mit einem selbstgetricketen CMS gepflegt,
                  dass auf tiny_mce basiert, dass Teil des Frameworks ist.

                  beste gruesse,
                  martin

              2. Klar, in Bezug auf die Domainwurzel referenzieren.
                merci, versteh aber mal wieder nicht, was Du meinst ;(

                Die Wurzel allen Übels ist deine Document-Root. Willst du diese referenzieren, dann wäre dein Verweisziel ein simpler Slash (siehe SELFHTML). Wo liegt denn überhaupt deine htaccess mit den Rewrite-Regeln?

                Siechfred

                --
                Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
                1. Wo liegt denn überhaupt deine htaccess mit den Rewrite-Regeln?

                  Die liegt direkt unter root.

                  Ein Auszug:
                  -----------
                  RewriteRule ^Unsere_Leistungen/$ /_content/?site_id=3 [L]

                  beste gruesse,
                  martin

          2. Nein, ich möchte keinen Reload der Site. [...] Die Grössenänderung funktioniert mit Javascript.

            Dann mache es so, wie dir bereits zweimal vorgeschlagen. Oder noch besser: Nimm kein A-Element, sondern irgendwas anderes (ich tendiere zu einem Klickbutton), dem du nicht seine Kernfunktion nehmen musst.

            Zu deiner anderen Frage mögen sich Berufenere äußern :)

            Siechfred

            --
            Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
  2. Hi,

    ich habe einen Link in meiner Anwendung, der eine JS-Funktion
    aufruft:

    <a href="#" onclick="setfontsize('15px');">...</a>

    Ich verstehe dein Problem nicht genau, da ich noch nie was mit mod_rewrite gemacht habe, aber kann es sein, dass du nur verhindern willst, dass deinem Link gefolgt wird?

    Wenn ja versuche folgendes:
    <a href="#" onclick="setfontsize('15px');return false;">...</a>

    mfG,
    steckl