Я использую javascript, чтобы отключить выделение текста на моем веб-сайте.
Код такой:
<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>
Похожий скрипт можно найти здесь
На моем локальном хосте: все браузеры (Firefox, Chrome, IE и Safari) отлично работают.
На моем Live сайте: все в порядке, ЗА ИСКЛЮЧЕНИЕМ Firefox.
Мои вопросы:
Есть ли у кого-нибудь предложение относительно того, почему Firefox по-разному ведет себя для живого сайта и локального хоста. Примечание. Javascript включен.
Возможно, мой сценарий слишком упрощен, поэтому я пробовал следующее с ТОЧНО ЖЕ РЕЗУЛЬТАТАМИ
javascript
арпеджио
источник
источник
user-select
само по себе не работает, требуется префикс «-vendor-», например,-moz-user-select
и-webkit-user-select
, таким образом, чтобы он работал , необходимо установить все возможные вариантыnone
).Ответы:
Просто используйте этот метод css:
Вы можете найти тот же ответ здесь: Как отключить выделение выделения текста с помощью CSS?
источник
Я пишу элемент управления слайдером, чтобы обеспечить функцию перетаскивания, это мой способ предотвратить выбор содержимого при перетаскивании пользователем:
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 }
привязать
startDrag
к своему дому:<button onmousedown="startDrag">...</button>
Если вы хотите статически отключить выделение текста для всех элементов, выполните код при загрузке элементов:
window.addEventListener('selectstart', function(e){ e.preventDefault(); });
источник
contenteditable
атрибутом (например, если вы хотите отключить выделение текста во время изменения размера элемента управления мышью пользователя).Для JavaScript используйте эту функцию:
function disableselect(e) {return false} document.onselectstart = new Function (return false) document.onmousedown = disableselect
чтобы включить выбор, используйте это:
function reEnable() {return true}
и используйте эту функцию где угодно:
document.onclick = reEnable
источник
new Function (return false)
что это недействительный код javascript. Используйте простоdocument.onselectstart = disableselect
.document.oncontextmenu = new Function("return false;");
или этого с использованием CSS:<body onselectstart="return false">
new Function("return false;")
, сработает, но это излишне сложно по сравнению с тем,disableselect
что у вас уже есть.onselectstart="return false"
тоже будет работать, но не имеет ничего общего с CSS. Также я заметил, что остальная часть вашего ответа тоже неверна -reEnable
функция вообще не работает.Если у вас есть такая html-страница:
Есть простой способ отключить все события:
document.write(document.body.innerHTML)
Вы получили html-контент и потеряли другие вещи.
источник
Можно также использовать, работает нормально во всех браузерах, требуется javascript:
onselectstart = (e) => {e.preventDefault()}
Пример:
onselectstart = (e) => { e.preventDefault() console.log("nope!") }
Еще одна альтернатива js, путем тестирования поддержки и отключения CSS
userSelect
илиMozUserSelect
для 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"
Чистый css, такая же логика. Предупреждение: вам придется распространить эти правила на каждый браузер, это может быть подробным.
@supports (user-select:none) { div { user-select:none } } @supports (-moz-user-select:none) { div { -moz-user-select:none } }
<div>Select me!</div>
источник
Просто Скопируйте этот текст и поставьте перед
</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 }
источник