Konrad L. M. Rudolph: Firebird 0.7 ändert Handling von "onclick"

Hallo,

bisher war es ja immer so, daß "onclick" in einem Ankerzeichen _vor_ dem Verweis gehandhabt wurde; soll heißen, wenn man schreibt:

<a href="#" onclick="aktion(); return false;">

Wird der href="#" garnicht erst aufgerufen, bedingt durch "return false". Dies scheint im 0.7-er Release anders zu sein: _falls_ ein href vorhanden ist, wird _dieser_ ausgeführt, die "onclick"-Aktion jedoch *garnicht*!

Gibt es dafür ein Workaround?

Normalerweise würde ich eh lieber einen Tag ohne "href" verwenden, aber der MSIE kann leider nur den <a>-Tag per CSS hovern, und da die Seite auch im MSIE funktionieren muß, kommt das nicht in Frage.

Ach ja: Beispiel für das Fehlverhalten: Startseite von http://madrat.net/

Gruß,
KonRad -

--
"Was Gott zusammengeführt hat ..." :: polithink.org -
the politicultural e-zine :: http://www.polithink.org
  1. hi,

    Dies scheint im 0.7-er Release anders zu sein: _falls_ ein href vorhanden ist, wird _dieser_ ausgeführt, die "onclick"-Aktion jedoch *garnicht*!

    kann ich mir kaum vorstellen.
    den 0.7er gibt es schon länger, dass problem wäre also gewiss vorher schon mal aufgefallen ...

    Ach ja: Beispiel für das Fehlverhalten: Startseite von http://madrat.net/
    da die Seite auch im MSIE funktionieren muß

    ... hast du sowieso noch einige andere probleme - zumindest, wenn deine aussage auch noch für IE 5.0 gelten soll.
    da sieht nämlich einiges verschoben aus:
    die hintergrundbilder der links werden vom text überdeckt, eine der links in der navigation ragen über deren rand hinaus, der unterste link "sitemap" verschwindet schon halb unter den farbflächen des style-switchers, etc. ...

    gruss,
    wahsaga

    1. kann ich mir kaum vorstellen.
      den 0.7er gibt es schon länger, dass problem wäre also gewiss vorher schon mal aufgefallen ...

      ist es ... mir :-)
      Und es liegt wirklich definitiv am href: wenn man einen Tag ohne "href" mit "onclick" versieht, klappt es. Sobald man "href" hinzufügt, klappt es nicht mehr, dafür wird der Spprung ausgeführt.

      Ach ja: Beispiel für das Fehlverhalten: Startseite von http://madrat.net/
      da die Seite auch im MSIE funktionieren muß

      ... hast du sowieso noch einige andere probleme - zumindest, wenn deine aussage auch noch für IE 5.0 gelten soll.

      Nein. Der MSIE 5.0 ist nicht die aktuelle Version und mir damit egal. 6.0 funktioniert (einigermaßen).

      Gruß,
      KonRad -

      --
      "Was Gott zusammengeführt hat ..." :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
  2. Hi,

    ich würde das als einen Bug sehen, der wohl auch korrigiert werden wird/sollte, sofern Firebird nicht den Anspruch wie der IE erhebt, daß sich die Webseitengestalter an seine Interpretation zu orientieren haben.
    Hast Du aber schonmal <a onclick="..." href="..."> probiert?

    freundliche Grüße
    Ingo

    1. Hi Ingo,

      Hast Du aber schonmal <a onclick="..." href="..."> probiert?

      Nein, habe ich jetzt auch mal probiert, bringt aber leider das gleiche Resultat.

      Gruß,
      KonRad -

      --
      "Was Gott zusammengeführt hat ..." :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
  3. Hallo,

    Hallo,

    bisher war es ja immer so, daß "onclick" in einem Ankerzeichen _vor_ dem Verweis gehandhabt wurde; soll heißen, wenn man schreibt:

    <a href="#" onclick="aktion(); return false;">

    Wird der href="#" garnicht erst aufgerufen, bedingt durch "return false". Dies scheint im 0.7-er Release anders zu sein: _falls_ ein href vorhanden ist, wird _dieser_ ausgeführt, die "onclick"-Aktion jedoch *garnicht*!

    Mit DOCTYPE HTML 4.01 Transitional funktionierts in: Moz/Firebird, OP7, IE 5/6

    Gruß Fritz

    --
    ss:| zu:) ls:[ fo:| va:) ch:? n4:& rl:? br:& js:| ie:| fl:|
    1. Mit DOCTYPE HTML 4.01 Transitional funktionierts in: Moz/Firebird, OP7, IE 5/6

      Bei mir nicht; folgenerer Code liefert den gleichen Fehler (bzw.: zeigt nix an und navigiert nach "#"):

      \\ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
              "http://www.w3.org/TR/html4/loose.dtd">

      <html>
          <head>
              <title>onclick-Test</title>
              <script type="text/javascript">
                  function test() { alert('Klappt!'); }
              </script>
          </head>

      <body>
              <div>
                  <a href="#" onclick="test(); return false;">Click!</a>
              </div>
          </body>
      </html>
      ///

      An alle mit FiBi 0.7: bitte mal hier testen, vielleicht liegt das ja tatsächlich nur an meiner Konfiguration: http://madrat.net/tmp/onclicktest.html

      Vielen Dank und Gruß,
      KonRad -

      --
      "Was Gott zusammengeführt hat ..." :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
      1. Hallo,

        An alle mit FiBi 0.7: bitte mal hier testen, vielleicht liegt das ja tatsächlich nur an meiner Konfiguration: http://madrat.net/tmp/onclicktest.html

        Click! -> Klappt.
        Firebird 0.7, Win98SE

        Gruß Fritz

        --
        ss:| zu:) ls:[ fo:| va:) ch:? n4:& rl:? br:& js:| ie:| fl:|
        1. Hi Fritz,

          Click! -> Klappt.
          Firebird 0.7, Win98SE

          Ok vielen Dank, dann installiere den FiBi ich in nächster Zeit mal neu.

          Gruß,
          KonRad -

          --
          "Was Gott zusammengeführt hat ..." :: polithink.org -
          the politicultural e-zine :: http://www.polithink.org
  4. Hi!

    Ach ja: Beispiel für das Fehlverhalten: Startseite von http://madrat.net/

    Ich schätzte mal, dass <body onclick[...]> stört.

    Gruß

    mdkiller

    1. Ich schätzte mal, dass <body onclick[...]> stört.

      nein, definitiv nicht; siehe das Beispiel, was ich weiter unten gepostet habe.

      Gruß,
      KonRad -

      --
      "Was Gott zusammengeführt hat ..." :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
      1. Hallo!

        nein, definitiv nicht; siehe das Beispiel, was ich weiter unten gepostet habe.

        Hatte das Forum nach meiner Mittagspause noch nicht aktualisiert, daher habe ich den Beitrag noch nihct gesehen gehabt. Das Beispiel funktioniert bei mir im Firebird 0.6, was du ja auch nicht angezweifelt hast. Allerdings passiert auf deiner HP beim anklicken der beschriebenen Links auch nichts... IM IE kann ich es nicht testen, da die Sicherheitseinstellungen für den IE hier sehr restriktiv sind und ich deine Seite nihct ansehen kann. Als was für einen Content-Type schickt deine Server die Seiten raus? Ich bekomme nämlich die Meldung: "Die aktuellen Sicherheitseinstellungen erlauben keinen Download der Datei." Und html-Seiten darf ich mir normalerweise ansehen...

        Gruß

        mdkiller

        P.S.: Werde es nachher mal zu Hause testen mit nem 0.7er...

        1. hi,

          IM IE kann ich es nicht testen, da die Sicherheitseinstellungen für den IE hier sehr restriktiv sind und ich deine Seite nihct ansehen kann. Als was für einen Content-Type schickt deine Server die Seiten raus? Ich bekomme nämlich die Meldung: "Die aktuellen Sicherheitseinstellungen erlauben keinen Download der Datei." Und html-Seiten darf ich mir normalerweise ansehen...

          prüf's doch einfach nach, mit micheal schröpls http trace, http://www.schroepl.net/cgi-bin/http_trace.pl

          ergebnis für http://madrat.net/tmp/onclicktest.html

          HTTP response headers received from server:
          [...]
          Content-Type: text/html

          gruss,
          wahsaga

          1. HTTP response headers received from server:
            [...]
            Content-Type: text/html

            Jain. Das gilt nur für den Klicktest.

            Für die übrige Site verwende ich application/xhtml+xml, aber *nur*, wenn der Browser das unterstützt! Das heißt, der Mozilla bekommt den korrekten Content Type ausgeliefert, der MSIE bekommt text/html-Müll (das CMS liefert dynamisch einen entsprechenden Header).

            Ansonsten: im Moz:FiBi 0.6 funktionierten die onclicks auf meiner Seite (auf meinem Rechner) noch einwandfrei.

            Gruß,
            KonRad -

            --
            "Was Gott zusammengeführt hat ..." :: polithink.org -
            the politicultural e-zine :: http://www.polithink.org
  5. Hallo,

    hast du beim Firebird einfach mal in die JavaScript-Konsole geschaut?

    Bei einem Scriptfehler wird  "return false;" nicht mehr ausgeführt,
    und erfreulicherweise funktioniert dann der Link.

    Grüsse

    Cyx23

    1. Hi,

      hast du beim Firebird einfach mal in die JavaScript-Konsole geschaut?

      Ja, kein Fehler wird angezeigt.

      Wenn ich das über einen anderen Tag löse (oder ohne Angabe von href) klappt es ja außerdem auch.

      Gruß,
      KonRad -

      --
      "Was Gott zusammengeführt hat ..." :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
      1. Hallo,

        hast du beim Firebird einfach mal in die JavaScript-Konsole geschaut?

        Ja, kein Fehler wird angezeigt.

        dann könnte es ein return aus der aufgerufenen Funktion oder deiner body-funktion sein.

        Wenn ich das über einen anderen Tag löse (oder ohne Angabe von href) klappt es ja außerdem auch.

        Ich kann deinen Fehler mit F0.7 so gar nicht nachvollziehen, auch nicht mit deinen Dateien, es sei denn das Script wird beendet.
        Kannst du das Problem isolieren?

        Grüsse

        Cyx23

        1. Hi,

          Ich kann deinen Fehler mit F0.7 so gar nicht nachvollziehen, auch nicht mit deinen Dateien, es sei denn das Script wird beendet.

          Hmm, schlecht für mich.

          Kannst du das Problem isolieren?

          Ja, ich habe es isoliert, und es liegt weder an der Body-Funktion, noch am return false. Es hat mit der Beispielseite nicht das geringste zu tun (das war eben nur ein Beispiel).

          Der Bug tritt nur auf, wenn man sowas hat:

          <a href="uri" onclick="...; return false;">
          <a href="uri" onclick="...;">
          <a href="uri" onclick="...">

          D.h. in drei Varianten, mit oder ohne return false.
          Er tritt _nicht_ auf, wenn man sowas hat:

          <a onclick="...">
          <span onclick="...">
          <irgendeintag onclick="...">

          das heißt: der Fehler liegt definitiv am "href"!

          Aber es scheint so, als läge das tatsächlich an meiner Browserkonfiguration, wenn der Fehler sonst bei niemand anderem auftritt.

          Gruß,
          KonRad -

          --
          "Was Gott zusammengeführt hat ..." :: polithink.org -
          the politicultural e-zine :: http://www.polithink.org
          1. Hallo,

            Browsereinstellungen hatte ich auch schon überlegt...

            <a href="javascript:alert('href')" onclick="alert('onclk'); return false;">test h vs o</a>
            <a onclick="alert('onclk'); return false;">test o</a>
            <a href="javascript:alert('href')">test h</a>

            Test 1 ergibt hier onclk.

            Grüsse

            Cyx23

  6. Warum sollte das ein Bug sein, oder kennst du einen Standard in dem garantiert die Reihenfolge der Interpretation von href und onclick definiert wird ?

    Benutz doch einfach:

    <a href="javascript: aktion()">Link</a>

    1. Hallo.

      Benutz doch einfach:

      <a href="javascript: aktion()">Link</a>

      Ja, dann sorgen auch nicht immer diese lästigen Suchmaschinen für den vielen Traffic. Und JS-Abstinente gibt es ja auch nur einen oder zwei auf der Welt.
      MfG, at

    2. Hallo,

      Benutz doch einfach:

      <a href="javascript: aktion()">Link</a>

      Diese Verwendung von Pseudoprotokollen mag ich nun mal nicht.

      Gruß,
      KonRad -

      --
      "Was Gott zusammengeführt hat ..." :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
      1. Diese Verwendung von Pseudoprotokollen mag ich nun mal nicht.

        Aber Pseudokonstrukte, nur um "Kompatibilität" zum IE beizubehalten, anscheinend schon, naja dazu sag ich jetzt mal nix ^^

        Dann musst du halt eine umständlichere Lösung bemühen:

        <span onClick     = "alert('geht auch im IE')"
              onMouseOver = "this.style.color = '#FF0000'"
              onMouseOut  = "this.style.color = '#0000FF'"
              style       = "color: #0000FF">
        Link
        </span>