Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 27 Code schützen
  gp 27.1 Quellcode einsehen
    gp 27.1.1 Menübefehle
    gp 27.1.2 Tastenkürzel
    gp 27.1.3 Kontextmenü
    gp 27.1.4 Dateisystem
  gp 27.2 Code im Frame verstecken
  gp 27.3 Mausklick verhindern
  gp 27.4 Code codieren
    gp 27.4.1 Optisch verschleiern
    gp 27.4.2 Inhaltlich verschleiern
  gp 27.5 Dateien auslagern
  gp 27.6 Caching verhindern
  gp 27.7 Code serverseitig generieren


Galileo Computing

27.3 Mausklick verhindern  toptop

Mit JavaScript lassen sich Fenster ohne Menüleiste erstellen (siehe Kapitel 8). Die naheliegendste Variante, auf den Quelltext zuzugreifen, besteht dann in der Verwendung des Kontextmenüs. Dazu muss die rechte Maustaste betätigt werden. Diesen Mausklick kann man bei Browsern ab Version 4 abfangen:

gp  Für den Internet Explorer muss aufgrund des dortigen Event-Handlings beim Eintreten der Ereignisse mousedown und mouseup die entsprechende Behandlungsfunktion aufgerufen werden:
if (document.all) {
   document.onmouseup = kein_kontext;
   window.onmouseup = kein_kontext;
}
gp  Für Mozilla-Browser muss die Funktion ebenfalls mit den Event-Handlern verknüpft werden; zusätzlich jedoch wird die Funktion captureEvents() benötigt:
if (document.getElementById) {
   window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
   window.onmousedown = kein_kontext;
   window.onmouseup = kein_kontext;
}
gp  Die Funktion kein_kontext() fragt zunächst ab, ob Maustaste 2 oder 3 gedrückt worden ist (je nach Browser hat die rechte Maustaste eine andere Nummer). Falls ja, wird eine Warnmeldung ausgegeben und die Funktion mit return false verlassen. So wird sichergestellt, dass das Ereignis nicht an den Browser weitergereicht wird, der dann das Kontextmenü öffnen würde.
function kein_kontext(e) {
   if (document.all) {
      if (event.button >= 2) {
         alert("Kein Rechtsklick!");
         return false;
      }
   } else if (document.getElementById) {
      if (e.which >= 2) {
         alert("Kein Rechtsklick!");
         return false;
      }
   } else {
      return true;
   }
}

Nachfolgend finden Sie das gesamte Skript, wieder in einer Funktion gekapselt, zum einfachen Einbau in Ihre HTML-Seiten:

function codeschutz_kontext(){
   if (document.all) {
      document.onmouseup = kein_kontext;
      window.onmouseup = kein_kontext;
   } else if (document.getElementById) {
      window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
      window.onmousedown = kein_kontext;
      window.onmouseup = kein_kontext;
   }
}

function kein_kontext(e) {
   if (document.all) {
      if (event.button >= 2) {
         alert("Kein Rechtsklick!");
         return false;
     }
   } else if (document.getElementById) {
      if (e.which >= 2) {
         alert("Kein Rechtsklick!");
         return false;
      }
   } else {
      return true;
   }
}

Der Einbau in ein HTML-Dokument gestaltet sich sehr einfach. Die Funktion muss nur eingebunden und aufgerufen werden:

<html>
<head>
<title>Codeschutz</title>
<script language="JavaScript" src="codeschutz.js"></script>
<script language="JavaScript"><!--
codeschutz_kontext();
//--></script>
</head>
<body oncontextmenu="return false;">
</body>
</html>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 27.5     Die »Fehlermeldung« bei einem Rechtsklick

Der Event-Handler oncontextmenu ist ein Feature ab Internet Explorer 5.0. Dieser Event-Handler wird aktiv, sobald das Kontextmenü aufgerufen wird. Durch return false; kann dies sinnvoll unterbunden werden – in halbwegs aktuellen Versionen des Internet Explorers, wohlgemerkt.

Gegen das oben vorgestellte Skript gibt es die folgenden Gegenmittel:

gp  Deaktivierung von JavaScript
gp  Menübefehl (Ansicht N Quelltext anzeigen beim Internet Explorer, Ansicht N Seitenquelltext bzw. View N Page Source im Mozilla)
gp  Tastenkürzel ((Strg)+(U) im Netscape)
gp  Verwendung einer speziellen Taste auf Windows-Tastaturen (außer beim Internet Explorer mit oncontextmenu="return false;")
gp  Durchsuchen des Browser-Caches
 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de