Gerch2003: Bild unter Mauszeiger platzieren.

Hallihallo,

ich habe ein Problem mit Javascript.

Habe es mal zum anschauen auf eine Seite eingebaut:

http://rd-haus.com/index_2.php

Das Script ist folgendes:

 3var mouseimg_width = 25; // Breite des Bildes (px)  
4var mouseimg_height = 25; // Höhe des Bildes (px)  
5  
6function mouseimg_pos(x, y)  
7{  
8obj = document.getElementById('mouseimg');  
9obj.style.left = (document.body.scrollLeft + (x - (mouseimg_width / 2))) + 'px';  
10maxLeft = (document.body.offsetWidth - obj.offsetWidth) - 4;  
11if (obj.offsetLeft > maxLeft) obj.style.left = maxLeft + 'px';  
12if (obj.offsetLeft < 0) obj.style.left = '0px';  
13obj.style.top = (document.body.scrollTop + (y - (mouseimg_height / 2))) + 'px';  
14maxTop = (document.body.offsetHeight - obj.offsetHeight) - 4;  
15if (obj.offsetTop > maxTop) obj.style.top = maxTop + 'px';  
16if (obj.offsetTop < 0) obj.style.top = '0px';  
17}

Nun mal kurz zu den Problemen.

Erstens, wie bekomm ich es hin, dass es auch im Firefox und Anderen läuft? Momentan läuft es nur im IE.
Das Zweite wäre, kann ich es irgendwie machen, dass das Script nur aktiv wird, wenn ich mit dem Mauszeiger über einem Bild bin?

Der Sinn der geschichte ist, wenn ich das Bild unter dem Mauszeiger transparent mache, sieht es der User nicht. Da das Bild nämlich direkt unter dem Mauszeiger ist kann der User mit Rechtsklick => Ziel speichern unter, nur die transparente .gif abspeichern.

Gruß

  1. Hallo Gerch2003!

    Der Sinn der geschichte ist...

    ...ganz und gar nicht sinnvoll.

    wenn ich das Bild unter dem Mauszeiger transparent mache, sieht es der User nicht. Da das Bild nämlich direkt unter dem Mauszeiger ist kann der User mit Rechtsklick => Ziel speichern unter, nur die transparente .gif abspeichern.

    Damit erzwingst Du beim Rechtsklick ein Kontextmenü, das spezifisch für Grafiken ist. Was ist, wenn ich mittels Rechtsklick einen Deiner Links in einem neuen Fenster öffnen will? Das verbietest Du mir ja damit, weil nur das Kontextmenü für Grafiken angezeigt wird.

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --
    _ - jenseits vom delirium - _

       Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
    1. Hallo Patrick,

      Damit erzwingst Du beim Rechtsklick ein Kontextmenü, das spezifisch für Grafiken ist. Was ist, wenn ich mittels Rechtsklick einen Deiner Links in einem neuen Fenster öffnen will? Das verbietest Du mir ja damit, weil nur das Kontextmenü für Grafiken angezeigt wird.

      Da hast du mich nicht richtig verstanden.
      Ich hatte ja geschrieben, dass dieses Script nur aktiv sein soll, wenn der User sich mit dem Mauszeiger über einem Bild befindet.

      Das Kontextmenü bleibt dann ja das Selbe, nur das Bild um dass es sich dabei handelt ist anders.

      Auf Links kannst du dann trotzdem klicken, da das Script ja nur über Bilder aktiv sein soll und über Links und sonstigen Elementen nicht.

      Gruß

      1. Deine Maßnahme ist sinnlos und userunfreundlich, ich wette ich kann mir jedes Bild von deiner Webseite holen, ohne dass du es verhindern kannst.

        --
        for your security, this text has been encrypted by ROT13 twice.
        1. Hallo,

          ich wette ich kann mir jedes Bild von deiner Webseite holen, ohne dass du es verhindern kannst.

          das steht außer Zweifel, die beschriebene Maßnahme macht es nur Laien etwas schwerer. Mir fallen auch spontan mehrere Möglichkeiten ein, diesen "Schutz" zu umgehen.

          @Gerch2003: Unabhängig davon ist der Code, den du uns bisher gezeigt hast, unvollständig. Das mag der eigentlich wichtige Kern sein, aber wie dieser Code aufgerufen wird, verschweigst du uns.

          Lass mich raten: Mit einem onmousemove-Handler am body-Element?
          Dann gib dem Bild, das du damit "schützen" willst, noch einen onmouseover- und einen onmouseout-Handler, und setze die display-Eigenschaft deines Trick-Bildes darin auf "visible" bzw. "hidden" (und als Defaultwert im Stylesheet natürlich auch "hidden").

          Übrigens sehe ich in dem Teil des Codes, den du angibst, auf Anhieb keinen Grund, warum er in anderen Browsern außer IE nicht laufen sollte.

          So long,
           Martin

          --
          Lieber eine Fliege im Porzellanladen
          als ein Elefant in der Suppe.
          1. Hallo Martin!

            Übrigens sehe ich in dem Teil des Codes, den du angibst, auf Anhieb keinen Grund, warum er in anderen Browsern außer IE nicht laufen sollte.

            Der Code tut es auch im Safari, im FF3 aber nicht:

            Warnung: Fehler beim Verarbeiten des Wertes für Eigenschaft 'left'.  Deklaration ignoriert.
            Quelldatei: http://rd-haus.com/index_2.php
            Zeile: 0
            Warnung: Fehler beim Verarbeiten des Wertes für Eigenschaft 'top'.  Deklaration ignoriert.
            Quelldatei: http://rd-haus.com/index_2.php
            Zeile: 0

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --
            _ - jenseits vom delirium - _

               Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
            J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
          2. @Gerch2003: Unabhängig davon ist der Code, den du uns bisher gezeigt hast, unvollständig. Das mag der eigentlich wichtige Kern sein, aber wie dieser Code aufgerufen wird, verschweigst du uns.

            Lass mich raten: Mit einem onmousemove-Handler am body-Element?
            Dann gib dem Bild, das du damit "schützen" willst, noch einen onmouseover- und einen onmouseout-Handler, und setze die display-Eigenschaft deines Trick-Bildes darin auf "visible" bzw. "hidden" (und als Defaultwert im Stylesheet natürlich auch "hidden").

            Übrigens sehe ich in dem Teil des Codes, den du angibst, auf Anhieb keinen Grund, warum er in anderen Browsern außer IE nicht laufen sollte.

            Also das mit dem onmouseout-Handler probier ich mal aus, ja du hast recht bei mir wird das Script im Body aufgerufen.

            Ich bin mit Javascript noch nicht so der Profi, deswegen weis ich auch nicht warum es nich gehen sollte. Fakt ist aber, dass es bei mir nur im IE funktioniert, bzw. im Firefox nicht.

        2. Deine Maßnahme ist sinnlos und userunfreundlich, ich wette ich kann mir jedes Bild von deiner Webseite holen, ohne dass du es verhindern kannst.

          Das ist natürlich klar, das kann ich auch. Ist eigtl. auch ganz einfach, wenn man weis wie das geht.

          Das Schülervz verwendet in der Bildergalerie die selbe Funktion.
          95% meiner Freunde wussten nicht dass man diese Bilder trotzdem downloaden kann.

  2. Grüße,
    in Opera geht das zwar auch, aber ich kann keine Links ancklicken - selbst wenn dies "digitales condom" nur über grafiken aktiviert wird - hast du denn nicht vor grafische verweise zu verwenden?
    MFG
    bleicher

  3. http://rd-haus.com/index_2.php

    Das funktioniert auch nicht wirklich im IE 7, weil du den Scrolling Offset nicht berücksichtigst, sodass das Bild beim Blättern immer auf der »ersten Seite« bleibt.

    Wenn du Bilder einbinden willst, ohne dass man sie einfach abspeichern kann, nutze background-image aus CSS. Darüber hinaus:
    http://de.selfhtml.org/navigation/faq.htm#rechte_maustaste
    http://de.selfhtml.org/navigation/anzeige/rechte_maustaste.htm - dieses Event-Handling kann man auch speziell für img-Elemente aufsetzen.

    Mathias

  4. Liebe(r) Gerch2003,

    ich würde an Deiner Stelle dieses Vorhaben ganz schnell wieder aufgeben. Mein Firefox listet mir unter "Seiteninformationen" alle "Medien" auf, darunter auch alle Deine auf der Seite benutzen Bilder (Hintergrund- oder Inhaltsbilder). Dort brauche ich mich dann nur zu bedienen, wenn ich von Deiner Seite Bilder klauen wollte...

    JavaScript lässt sich deaktivieren und Googles Bildersuche findet auch alles.

    Also: Lass' es bleiben!

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)