Robert: captureEvent

Hallo Forumteilnehmer!

Ich hab in google gesucht, wie man ein mouseOver event auf einen nichtLink-Tag realisiert mit javascript.
Alles was ich fand war erklärung zu komlizierten drag and drop layern oder den event auf einen Links. Auch in selfhtml gesucht.

Wie kann ich bei diesem hier, bei mouseover eine funktion aufrufen
<div style=",....">Drüberfahren</div>

es geht auch table oder layer oder p oder so. halt irgendwas blockiges <--- schöner Ausdruck

Es reicht auch eine Seite wo ich das nachlesen kann.

Währe sehr dankbar
Danke
MFG Robert

  1. Hallo,

    Wie kann ich bei diesem hier, bei mouseover eine funktion aufrufen
    <div style=",....">Drüberfahren</div>

    <div style="..." onmouseover="...">Drüberfahren</div>

    es geht auch table oder layer oder p oder so. halt irgendwas blockiges <--- schöner Ausdruck

    Es reicht auch eine Seite wo ich das nachlesen kann.

    http://www.w3.org/TR/html4/struct/global.html#h-7.5.4

    viele Grüße

    Axel

  2. Hi,

    Ich hab in google gesucht, wie man ein mouseOver event auf einen nichtLink-Tag realisiert mit javascript.

    Hättest mal lieber in Selfhtml gesucht ;-)

    Alles was ich fand war erklärung zu komlizierten drag and drop layern oder den event auf einen Links. Auch in selfhtml gesucht.

    Hups, hat er schon, 'tschuldigung.

    Wie kann ich bei diesem hier, bei mouseover eine funktion aufrufen
    <div style=",....">Drüberfahren</div>

    es geht auch table oder layer oder p oder so. halt irgendwas blockiges <--- schöner Ausdruck

    Es reicht auch eine Seite wo ich das nachlesen kann.

    <file:///hda5/root/selfhtml/selfhtml/html/referenz/attribute.htm#universalattribute> bischen runterscrollen, da ist beschrieben, wo onmouseover _nicht_ gestattet ist.

    <div style=",...." onmouseover="javascript:functionX()">Drüberfahren</div>

    so short

    Christoph Zurnieden

    1. Hallo,

      <div style=",...." onmouseover="javascript:functionX()">Drüberfahren</div>

      Nee, ne?
      http://www.w3.org/TR/html4/interact/scripts.html#adef-onmouseover

      viele Grüße ;-))

      Axel

      1. Hi,

        <div style=",...." onmouseover="javascript:functionX()">Drüberfahren</div>
        Nee, ne?
        http://www.w3.org/TR/html4/interact/scripts.html#adef-onmouseover

        Doch, durchaus ;-)

        (aus der html-4.01.loose.dtd)
        <!ENTITY % Script "CDATA">
        <!ENTITY % events
        [...]
          onmouseover %Script;       #IMPLIED

        Na, Scherz beiseite, Versehen meinerseits, war keine Absicht, sowas kommt vom C&P.

        Aber wenigstens hat's einer gemerkt, dann ist's ja nicht so schlimm ;-)

        so short

        Christoph Zurnieden

    2. Hallo!

      <div style=",...." onmouseover="javascript:functionX()">Drüberfahren</div>

      Das mit dem onmouseover und so kann ich eh ich meinte aber das isch das rein mit javascript mache, damit es auch in netscape4 funktioniert.
      Grüße Robert

      1. Hi,

        <div style=",...." onmouseover="functionX()">Drüberfahren</div>

        Das mit dem onmouseover und so kann ich eh ich meinte aber das isch das rein mit javascript mache, damit es auch in netscape4 funktioniert.

        Auha.

        selfhtml/html/attribute/eventhandler.htm:
        [...]Das obige Beispiel funktioniert auch mit älteren, JavaScript-fähigen Browsern. Solche Browser interpretieren Event-Handler nur in sehr eingeschränkter Form, nämlich bei Formularelementen und einigen wenigen anderen Elementen. Das Konzept der Event-Handler geht jedoch viel weiter. So kann beispielsweise auch eine Tabellenzelle beim Anklicken ihre Hintergrundfarbe wechseln usw. Solche Dinge funktionieren aber erst mit neueren Browsern (Internet Explorer ab Version 4.x, Netscape ab Version 6.x).[...]

        Es bleibt Dir also nur die Möglichkeit, mit den Mitteln, wie in selfhtml/javascript/objekte/event.htm beschrieben zu basteln.
        (Links sind absichtlich keine)

        Das ist recht aufwendig und Du solltest Dir überlegen, ob Du den Effekt wirklich _auch_ in den 4er Browsern benötigst. Sollte ads in einem Intranet laufen, in dem hauptsächlich NN4 verwandt wird, kommst Du nicht drumherum, aber für einen Shop im Internet würde ich das vernachlässigen. Die, die mit dem NN4 unterwegs sind, wissen größtenteils um die Unzulänglichkeiten dieses Browsers.
        Es ist in 99.99% der Fälle billiger, das Konzept zu ändern, als sich für den NN4 einen abzubrechen falls es in dem ursprünglichem Konzept nicht ohne geht. (Hin und wieder eine Ausnahme: CSS, da es meistens einfach ist, dem NN4 und IE4 ein kleines Extra zukommen zu lassen. Hey: ich sagte "meistens"! ;-)

        Falls es also nur ein Gimmick ist: laß es lieber, ist die Mühe nicht wert.

        so short

        Christoph Zurnieden

    3. <div style=",...." onmouseover="javascript:functionX()">Drüberfahren</div>

      Das Label 'javascript:' ist hier überflüssig und in Browsern, die keine Labels kenne ist es sogar falsch.

      Struppi.

  3. Hallo Christoph und Axel

    Eigentlich mach ich das ganze nicht für jemanden oder wegen etwas.
    Ich bin keine Webmaster eines Clanes oder gar einer Firma.
    Ich mag es wenn meine Seite mit Netscape 4 funktioniert.
    Warum? Ich habe Seiten gesehen die mit Netscape 4 genauso aussehen als auch funktionieren wie mit der neuesten Version von Mozilla/IExplorer/Netscape. Ich war inspiriert. Also eigentlich geht es mir nicht darum, ob es sich lohnt. Es soll nur eine Seite haben die etwas besonderes an sich hat, nämlich mit NN4 zu funktionieren trotz vieler Extras, wie Drag an Drop, Mit-Scrollendes-Menu, .... .

    Es bleibt Dir also nur die Möglichkeit, mit den Mitteln, wie in selfhtml/javascript/objekte/event.htm beschrieben zu basteln.
    (Links sind absichtlich keine)

    Danke, diesen Rat werde ich wohl befolgen müssen, auch wenn es aufwendig ist. Auch das beginnen mit HTML war aufwendig und langwierig, aber dadurch das es nur zum Spaß war, war es nicht so schlimm.

    (aus der html-4.01.loose.dtd)
    <!ENTITY % Script "CDATA">
    <!ENTITY % events
    [...]
      onmouseover %Script;       #IMPLIED

    sowas muss ich mir noch anschauen. Davon werd ich noch nicht schlau.

    Danke für eure Hilfe
    Sehr freundliche Grüße
    Robert

    1. Hallo Robert,

      (aus der html-4.01.loose.dtd)
      <!ENTITY % Script "CDATA">
      <!ENTITY % events
      [...]
        onmouseover %Script;       #IMPLIED

      sowas muss ich mir noch anschauen. Davon werd ich noch nicht schlau.

      Das Problem war, dass Christoph schrieb:

      <div style="..." onmouseover="javascript:functionX()">Drüberfahren</div>

      Das Attribut onmouseover ist laut http://www.w3.org/TR/html4/struct/global.html#h-7.5.4 im Element DIV erlaubt. Es hat laut http://www.w3.org/TR/html4/interact/scripts.html#adef-onmouseover Inhalt vom Typ Script data zu haben. Was Script data ist, wird laut http://www.w3.org/TR/html4/types.html#type-script in der DTD (Document Type Definition) für HTML in der Entity %SCRIPT http://www.w3.org/TR/html4/sgml/dtd.html#Script beschrieben. Dort steht, dass %SCRIPT CDATA http://www.w3.org/TR/html4/types.html#type-cdata zum Inhalt hat. Das ist laut http://www.w3.org/TR/html4/types.html#type-cdata "a sequence of characters from the document character set and may include character entities." Das würde auch "javascript:" einschließen.

      ABER ;-))

      In http://www.w3.org/TR/html4/types.html#type-script steht auch: "User agents must not evaluate script data as HTML markup but instead must pass it on as data to a script engine." Der Therm "must" ist das schärfste, was an Forderung kommen kann. Es bedeutet: Das, was als Script data übergeben wird, hat unbedingt von einer Script engine interpretiert zu werden, falls vorhanden natürlich ;-)). Weil aber "javascript:" _keine_ JavaScript-Anweisung ist, _kann_ der JavaScript-Interpreter damit normalerweise nichts anfangen. Es _könnte_ also sein, dass er eine Fehlermeldung ausgibt.  Richtig wäre:

      <div style="..." onmouseover="functionX();">Drüberfahren</div>

      Wobei functionX() eine gültige, bereits definierte Funktion sein muss.

      viele Grüße

      Axel

      1. Hallo!

        Laut http://www.wer-weiss-was.de/theme3/article28465.html darfst du jetzt nach einer sehr umfangreichen Antwort ein dankeschön erwarten.
        Also:

        Danke

        onmouseover %Script;       #IMPLIED //<<- INSIDER SPAß :)

        Ich nehme mal an, dass das hier bedeutet das man nicht gezwungen ist einen nur script zu verwenden.

        MFG ROBERT

        1. Hallo Robert,

          Laut http://www.wer-weiss-was.de/theme3/article28465.html darfst du jetzt nach einer sehr umfangreichen Antwort ein dankeschön erwarten.
          Also:

          Danke

          Willst Du mir damit sagen, dass Du meinen Ausführungen nicht folgen konntest? ;-)) Ja, eine DTD lesen _ist_ anspruchsvoll.

          onmouseover %Script;       #IMPLIED //<<- INSIDER SPAß :)

          Ich nehme mal an, dass das hier bedeutet das man nicht gezwungen ist einen nur script zu verwenden.

          Nein. Das ist aus der DTD kopiert.
          http://www.w3.org/TR/html4/sgml/dtd.html#events

          Wie man eine DTD liest steht hier: http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.3.

          Das "onmouseover" ist ein Attribut. Also:
          3.3.4 Attribute declarations
          The <!ATTLIST keyword begins the declaration of attributes that an element may take. It is followed by the name of the element in question, a list of attribute definitions, and a closing >. Each attribute definition is a triplet that defines:

          The name of an attribute.
          The type of the attribute's value or an explicit set of possible values. Values defined explicitly by the DTD are case-insensitive. Please consult the section on basic HTML data types for more information about attribute value types.
          Whether the default value of the attribute is implicit (keyword "#IMPLIED"), in which case the default value must be supplied by the user agent (in some cases via inheritance from parent elements); always required (keyword "#REQUIRED"); or fixed to the given value (keyword "#FIXED"). Some attribute definitions explicitly specify a default value for the attribute.

          Das #IMPLIED legt also fest, dass der Standardinhalt des Attributs "onmouseover" vom user agent (dem Browser) vorgegeben wird. Es _muss_ also nicht _immer_ explizit angegeben werden.

          Es gibt Attribute, die _immer_ angegeben werden müssen:
          <!ATTLIST IMG
            %attrs;                              -- %coreattrs, %i18n, %events --
            src         %URI;          #REQUIRED -- URI of image to embed --
            alt         %Text;         #REQUIRED -- short description --
            ...
            >

          Ein IMG-Element _muss_ also die Attribute src _und_ alt haben.
          <img> - ist falsch
          <img src="bild.gif"> - ist falsch
          <img src="bild.gif" alt="Ein Bild"> - ist korrekt.

          viele Grüße

          Axel