Ich verwende Javascript, um die Textauswahl auf meiner Website zu deaktivieren.
Der Code lautet:
<script type="text/JavaScript">
function disableselect(e) {
return false
}
function reEnable() {
return true
}
document.onselectstart = new Function ("return false")
if (window.sidebar) {
document.onmousedown = disableselect
document.onclick = reEnable
}
</script>
Ein ähnliches Skript finden Sie hier
Auf meinem lokalen Host: Alle Browser (Firefox, Chrome, IE und Safari) funktionieren hervorragend.
Auf meiner Live-Site: Alles in Ordnung, AUSSER Firefox.
Meine Fragen sind:
Hat jemand einen Vorschlag, warum sich Firefox für die Live-Site und den lokalen Host anders verhält? Hinweis: Javascript ist aktiviert.
Vielleicht ist mein Skript zu simpel, deshalb habe ich Folgendes mit GENAU GLEICHEN Ergebnissen versucht
javascript
Arpeggio
quelle
quelle
user-select
allein funktioniert dies nicht, es erfordert das Präfix "-vendor-", wie-moz-user-select
und-webkit-user-select
, damit es funktioniert müssen alle möglichen Variationen aufnone
) eingestellt werden.Antworten:
Verwenden Sie einfach diese CSS-Methode:
Die gleiche Antwort finden Sie hier: Wie deaktiviere ich die Hervorhebung der Textauswahl mithilfe von CSS?
quelle
Ich schreibe eine Schieberegler-UI-Steuerung, um die Drag-Funktion bereitzustellen. Auf diese Weise kann verhindert werden, dass Inhalte beim Ziehen ausgewählt werden:
function disableSelect(event) { event.preventDefault(); } function startDrag(event) { window.addEventListener('mouseup', onDragEnd); window.addEventListener('selectstart', disableSelect); // ... my other code } function onDragEnd() { window.removeEventListener('mouseup', onDragEnd); window.removeEventListener('selectstart', disableSelect); // ... my other code }
Binden Sie
startDrag
an Ihren Dom:<button onmousedown="startDrag">...</button>
Wenn Sie die Textauswahl für alle Elemente statisch deaktivieren möchten, führen Sie den Code aus, wenn Elemente geladen werden:
window.addEventListener('selectstart', function(e){ e.preventDefault(); });
quelle
contenteditable
Attribut funktioniert (z. B. wenn Sie die Textauswahl deaktivieren möchten, während die Größe des Steuerelements mit der Maus des Benutzers geändert wird).Verwenden Sie für JavaScript diese Funktion:
function disableselect(e) {return false} document.onselectstart = new Function (return false) document.onmousedown = disableselect
Um die Auswahl zu aktivieren, verwenden Sie Folgendes:
function reEnable() {return true}
und verwenden Sie diese Funktion an einer beliebigen Stelle:
document.onclick = reEnable
quelle
new Function (return false)
ist kein gültiger Javascript-Code. Verwenden Sie nurdocument.onselectstart = disableselect
.document.oncontextmenu = new Function("return false;");
oder dies mit CSS:<body onselectstart="return false">
new Function("return false;")
würde funktionieren, ist aber unnötig kompliziert im Vergleich zu dem,disableselect
was Sie bereits haben.onselectstart="return false"
würde auch funktionieren, hat aber nichts mit CSS zu tun. Ich habe auch bemerkt, dass der Rest Ihrer Antwort auch falsch ist - diereEnable
Funktion würde überhaupt nicht funktionieren.Wenn Sie eine HTML-Seite wie diese haben:
Es gibt eine einfache Möglichkeit, alle Ereignisse zu deaktivieren:
document.write(document.body.innerHTML)
Sie haben den HTML-Inhalt erhalten und andere Dinge verloren.
quelle
Man könnte auch verwenden, funktioniert in allen Browsern einwandfrei, benötigt Javascript:
onselectstart = (e) => {e.preventDefault()}
Beispiel:
onselectstart = (e) => { e.preventDefault() console.log("nope!") }
Eine andere Alternative ist das Testen und Deaktivieren von CSS-Unterstützung
userSelect
oderMozUserSelect
für Firefox.let FF if (CSS.supports("( -moz-user-select: none )")){FF = 1} else {FF = 0} (FF===1) ? document.body.style.MozUserSelect="none" : document.body.style.userSelect="none"
Reine CSS, gleiche Logik. Warnung: Sie müssen diese Regeln auf jeden Browser ausweiten. Dies kann ausführlich sein.
@supports (user-select:none) { div { user-select:none } } @supports (-moz-user-select:none) { div { -moz-user-select:none } }
<div>Select me!</div>
quelle
Einfach Kopieren Sie diesen Text und setzen Sie den vorherigen ein
</body>
function disableselect(e) { return false } function reEnable() { return true } document.onselectstart = new Function ("return false") if (window.sidebar) { document.onmousedown = disableselect document.onclick = reEnable }
quelle