eintyp
Goto Top

Text nicht markierbar machen

Hallo Administratoren,

Wie kann man einen bestimmten Text nicht markierbar machen?
Es soll nur dazu dienen, Schönheitsfehler zu vermeiden.
Ich habe schon verschiedene Sachen ausprobiert, aber die funktionieren alle nicht.

z.B.
  disableSelection(document.getElementById("nav"))  

Ich hoffe ihr könnt mir helfen.
Danke schonmal im vorraus

mfg -einTyp-

Content-ID: 154157

Url: https://administrator.de/forum/text-nicht-markierbar-machen-154157.html

Ausgedruckt am: 23.12.2024 um 07:12 Uhr

H41mSh1C0R
H41mSh1C0R 02.11.2010 um 10:34:19 Uhr
Goto Top
z.B.

window.onload = function() {
  var element = document.getElementById('content');  
  element.onselectstart = function () { return false; } // ie
  element.onmousedown = function () { return false; } // mozilla
}


PS: dein Code Tag ist nicht geschlossen. ^^
EinTyp
EinTyp 02.11.2010 um 10:50:32 Uhr
Goto Top
Es geht leider nicht face-sad

Ich habs auf Mozilla und IE probiert. Überall das gleiche.

wäre es so richtig? (ich bin nicht der JavaScript-Profi^^)
  window.onload = function() {
      var element = document.getElementById('nav');  
      element.onselectstart = function () { return false; }
      element.onmousedown = function () { return false; }
    }

trotzdem Danke
Snowman25
Snowman25 02.11.2010 um 11:02:09 Uhr
Goto Top
hallo @EinTyp,

wie wäre es, wenn du den Style der Auswahl genauso auswählst wie der normale Text? Dann wird zwar immer noch markiert, aber man kann es nicht sehen.
Du müsstest es ungefähr so machen:
	#nav::selection {
		background: #c00;
		color: #fff;
	}
	#nav::-moz-selection {
		background: #c00;
		color: #fff;
	}
	#nav::-webkit-selection {
		background: #c00;
		color: #fff;
	}

wobei #c00 und #fff natürlich deine Farben repräsentieren.

Gruß
Snow
H41mSh1C0R
H41mSh1C0R 02.11.2010 um 11:02:27 Uhr
Goto Top
Nav ist bei dir die Navigation? Mit dem getElementById kannst du sozusagen einzelne Elemente auswählen wo du die folgenden Sachen drauf anwendest.

Also wenn du das Markieren komplett unterbinden willst und nicht nur in dem Element dann:

var element = document; 
element.onselectstart = function () { return false; } // ie 
element.onmousedown = function () { return false; } // mozilla 

Getestet im IE 8, FF 3.5.3 und Opera 10.10. --> Geht

PS:

bin auch kein JS Profi.
H41mSh1C0R
H41mSh1C0R 02.11.2010 um 11:04:30 Uhr
Goto Top
Kann mich irren, aber vielleicht will er das markieren nicht zulassen damit man kein Copy&Paste machen kann.

Das über die Farben zu machen ist natürlich Tricky =) und würde auch seinen Zweck erfüllen, wenn es nur um das Sichtbare gehen sollte. ^^
Snowman25
Snowman25 02.11.2010 um 11:19:34 Uhr
Goto Top
Zitat von @H41mSh1C0R:
Kann mich irren, aber vielleicht will er das markieren nicht zulassen damit man kein Copy&Paste machen kann.

Wenn er copy&paste verbieten will, dann sollte der content einfach nicht ins netz. Ansonsten vielleicht noch als Bilder speichern und z.B. über eine Imagemap oder passende slices das Menü organisieren.
EinTyp
EinTyp 02.11.2010 um 11:36:39 Uhr
Goto Top
hey!

dein Beispiel hat geklappt (ganze document).
Sobald ich nur ein Teil nicht-markierbar machen will, kommt es wieder auf das Alte hinaus.

Ich habe jetzt eine Beispiel-Seite:

<html>
  <head>
    <title>test</title>
    <script type="text/javascript">  
      var element = document.getElementsByTagName("p");    
      element.onselectstart = function () { return false; } // ie  
      element.onmousedown = function () { return false; } // moz
     </script> 
  </head>
  <body>
    <p>mich kannst du nicht markieren</p>
    <p>mich schon</p>
  </body>
</html>

Wo liegt hier der Fehler??

mfg -einTyp-
EinTyp
EinTyp 02.11.2010 um 11:39:50 Uhr
Goto Top
Nein,
um das verbieten von copy&paste geht es nicht.
Außer sie sind wirklich scharf auf:
Home, Impressum, etc.^^
H41mSh1C0R
H41mSh1C0R 02.11.2010 um 14:26:01 Uhr
Goto Top
Also rein von meinem Verständnis her müsste das stimmen.

In element wird die Verbindung hinterlegt zum in deinem Fall 0ten TAG "p" und für diesen müsste auch das Script gelten.

Vielleicht findet sich ja noch ein JS Profi der hier nen Tipp geben kann.
EinTyp
EinTyp 04.11.2010 um 14:48:18 Uhr
Goto Top
Ich habs jetzt mit CSS gelöst. Da JavaScript nicht auf einzelne Elemente begrenzen lässt... -.-

#nav {
  -moz-user-select: none;
  -khtml-user-select: none;
  user-select: none;
}

Funktioniert leider nicht im IE.

Trotzdem nochmal Danke an alle.

mfg -einTyp-
EinTyp
EinTyp 04.11.2010 um 16:36:38 Uhr
Goto Top
Ich habe den Fehler gefunden.
Man muss den JS-Teil nach den betroffenen IDs/Classes/etc. schreiben.

mfg -einTyp-