Andi: Prüfen ob Browser Event kennt

Hallo,

ich suche nach einer Möglichkeit herauszufinden ob der Browser ein Event unterstützt oder nicht.

Im IE kann ich das mit if (window.onscroll) testen.

Firefox & Opera machen da nicht mit. Wie kann ich herausfinden ob das Event unterstützt wird oder nicht?

Danke schonmal.

  1. Hallo,

    ich suche nach einer Möglichkeit herauszufinden ob der Browser ein Event unterstützt oder nicht.

    Im IE kann ich das mit if (window.onscroll) testen.

    Firefox & Opera machen da nicht mit. Wie kann ich herausfinden ob das Event unterstützt wird oder nicht?

    Danke schonmal.

    evtl mit

    if(typeof(window.onscroll) != "undefined")

    1. evtl mit

      if(typeof(window.onscroll) != "undefined")

      eben nicht denn wenn ich ein völlig unbekanntes event anlege

      window.irgendeinevent = meinFunktion;

      und dann frage ob das Event existiert

      if(typeof(window.onscroll) != "undefined")

      wird true zurück gegeben da

      typeof(window.onscroll) == "function" ist.

      Es muss ne andere Lösung her.
      Grüße, Andi

      1. Moin

        eben nicht denn wenn ich ein völlig unbekanntes event anlege
        window.irgendeinevent = meinFunktion;
        und dann frage ob das Event existiert
        if(typeof(window.onscroll) != "undefined")

        ich würde die Reihenfolge daher auch umdrehen

        Gruß
        rfb

        --
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
        (Galileo Galilei)
        1. Moin

          eben nicht denn wenn ich ein völlig unbekanntes event anlege
          window.irgendeinevent = meinFunktion;
          und dann frage ob das Event existiert
          if(typeof(window.onscroll) != "undefined")
          ich würde die Reihenfolge daher auch umdrehen

          Gruß
          rfb

          ja genau... frag doch erst ab ob das event da ist (mit typeof...) und wenn ja, dann weist du die Funktion zu.

          und wenn ein Browser ein Event wie zB onpropertychange was nur der IE kennt, nicht kennt, dann kannst du ja wahrscheinlich auch nichts daran ändern. Die Zuweisung wirft aber auch keinen Fehler, von daher nicht schlimm. Im FF wird dann halt einfach nichts passieren.

          Anders zB bei onmousewheel. IE und Safari (u.a.) kennen das event, FF nicht. Da musst du es dann über addEventListener("DOMWheel", ...), oder so ähnlich implementieren...

          Gruß
          Christian

          1. Nein klappt leider nicht.

            OP & FF geben mir "NO" aus.

            if (document.onmouseover) {

            alert("OK");
            }
            else {

            alert("NO");
            }

            Grüße!

            1. Nein klappt leider nicht.

              OP & FF geben mir "NO" aus.

              if (document.onmouseover) {

              alert("OK");
              }
              else {

              alert("NO");
              }

              Grüße!

              hm, dachte ja auch eigentlich mit typeof überprüfen...
              aber das hab ich gerade selbst mal gemacht, hat nicht geklappt.

              noch ne Idee war:

              alert("onmouseover" in document);

              aber das gibt auch nur im IE true zurück.

              sorry, hab sonst keine idee...

              Gruß
              Christian

              1. Ja schade das es nicht klappt.

                Gibts im Web evtl. ne Dokumentation über sämmtliche Ereignisse mit Browser Unterstützung? Bei Selfhtml fehlen leider einige Events.
                Dann kann ich zumindes mit der Browserweiche abhilfe schaffen.

                1. Ja schade das es nicht klappt.

                  Gibts im Web evtl. ne Dokumentation über sämmtliche Ereignisse mit Browser Unterstützung? Bei Selfhtml fehlen leider einige Events.
                  Dann kann ich zumindes mit der Browserweiche abhilfe schaffen.

                  vielleicht hilft das?

                  http://en.wikipedia.org/wiki/DOM_Events
                  da sind DOM und MS Events. jeder standardkonforme Browser sollte dann die DOM events unterstützen...

                  ... welche events willst du denn haben?

                  so standard events wie mouse sachen kennt doch jeder Browser...

                  Gruß
                  Christian

  2. hi,

    ich suche nach einer Möglichkeit herauszufinden ob der Browser ein Event unterstützt oder nicht.

    Wirst du m.E. nicht finden.

    Im IE kann ich das mit if (window.onscroll) testen.

    Ja, typeof ergibt object, so lange noch keine Handlerfunktion zugewiesen wurde.
    Die Objekteigentschaft window.onscroll scheint bei ihm also per se zu existieren, als allgemein vom Typ Object, selbst wenn noch keine Handlerfunktion zugewiesen wurde.

    Firefox & Opera machen da nicht mit.

    Bei denen scheinen also die Events nicht "automatisch" als Objekteigenschaften vorhanden zu sein. Erst wenn du ihnen eine Funktionsreferenz zuweist, werden sie angelegt.

    Wie kann ich herausfinden ob das Event unterstützt wird oder nicht?

    M.E. gar nicht.

    gruß,
    wahsaga

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