Markieren verhindern

Hallo!
ich verwende folgenden code, um zu verhindern, dass der Benutzer den Text markiert
(das das umgangen werden kann weiß ich)

function disableselect(e){
return false;
}
function reEnable(){
return true;
}
document.onselectstart=new Function (“return false”)
if (window.sidebar){
document.onmousedown=disableselect;
document.onclick=reEnable;
}

Da dieser code auf das komplette dokument angewendet wird, ist auch bei textboxen nicht mehr die volle funktionalität vorhanden…

ist es möglich, diese irgendwie auszusparen?!

Möglich ist das schon, du kannst z.B. prüfen, welches Element aktiv ist und daran festlegen, ob die Rückgabe true oder false ist.

Die Funktionen helfen aber nur gegen Gelegenheitsdiebe. Wer den Text wirklich will, bekommt ihn auch, z.B. Javascript deaktivieren, Datei speichern, Per JS die Schutzfunktionen entfernen, …

[quote=“questro”]ich verwende folgenden code, um zu verhindern, dass der Benutzer den Text markiert
(das das umgangen werden kann weiß ich)[/quote]
Wofür machst du’s dann …?

Lass diesen Mist, der die Nutzbarkeit deiner Seite nur einschränkt* - damit hat sich das Problem, das du damit hast, auch gleich erledigt.

  • Bspw. markiere ich gern mal ein Wort oder mehrere, um direkt über das Kontextmenü danach suchen oder sie übersetzen lassen zu können. Seiten, die das einschränken, sind Kackseiten, und deren Ersteller m.E. hirnlose Trottel.

Sry, aber erstmal bitte vorsichtig mit solchen Äußerungen:

Es macht nämlich in besonderen Fällen Sinn.
z.B wenn Websiten als Anwendungen fungieren sollen
–> siehe GoogleDocs (tabellen&text)
Hier wurde sogar das Kontextmenu ausgetauscht,
und das kann oft sehr hilfreich sein!

also ich habe versucht über:
active = document.getElementById(‘textbox’);
If(!acive){
functionMarkieren();
}
den aktiven zustand rauszufinden,was leider nicht ganz so klappt…
bin ich auf dem richtigen weg?!

Wenn es ein solcher wäre, hättest du ihn von Anfang an beschreiben sollen.

Wenn du aber nur danach fragst, wie du das „Markieren von Text verhindern“ kannst, ist das erst mal eine Fragestellung, die in genau diese dumme Richtung tendiert.

Also - was hast du wirklich vor, wofür brauchst du das?

K.A.
Du willst nur abhängig davon, ob es ein Element mit einer bestimmten ID gibt, eine Funktion aufrufen. Was diese machen soll, weiß niemand.

Also,
erstmal hab ich von Anfang an gesagt, das ich weiß, das man das umgehen kann,
und ich habs einfach für irrelevant gehalten euch den sinn und zweck zu erklären.
(weil das eigentlich auch gar nicht das Problem ist! hab ja nicht gefragt ob das Sinn macht!)

Wie schon oben erwähnt:
ich habe eine Textbox, die sich Mitten auf der Seite befindet.
Wenn ich den Code einsetze (der natürlich für die gesamte Seite gilt) ,
kann man die Textbox nicht mehr normal benutzen.
(anschließend werden noch weitere Bereiche wieder aktiviert - wie z.B Text -
aber das spielt hier ebenfalls noch keine Rolle)

Damit du es dir mal angucken kannst:
jugend-soest.de/steve
(Wie du siehst, kann man durch TAB in die textbox springen - aber nicht durch klicken!

Wichtig ist für mich hauptsäch, das z.B buttons etc nicht markiert werden können!

Da scheint aber einiges (mit einer Kombination von CSS und JS?)
pessimiert zu sein.
Irgendeine Formulareingabe sehe ich da nur, wenn ich am browser
die Interpretation von CSS deaktivieren. Da man dies nicht ahnen
kann, sieht die Seite inhaltlich ziemlich leer aus, wenn man die
Interpretation von CSS aktiviert hat und die von JS deaktiviert
(Normaleinstellung bei mir, letzteres zumindest auf Seiten, die ich
nicht kenne ;o)

Ich vermute, für dein Problem müßte man dann Elementweise die
Ereignisse über das DOM umbiegen, sofern das mit JS machbar ist.
Ohne JS würde man z.B. über nicht markierungswürdige Bereiche
ein transparentes Element oder Objekt legen, welches die Ereignisse
abfängt, ist aber ähnlich problematisch wie die Skriptvariante für
Besucher, die immer noch Skriptinterpretation aktiviert haben.

Und schlag mal CSS Sprites nach :slight_smile: