Javascript: отключить выбор текста
Я использую 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 включен.
-
Возможно, мой сценарий слишком упрощен, поэтому я попробовал следующее с ТОЧНО ЖЕ Результатами
Ответы
Ответ 1
Просто используйте этот метод css:
body{
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Здесь вы можете найти тот же ответ: Как отключить выделение выделения текста с помощью CSS?
Ответ 2
Я пишу элемент управления slider ui для обеспечения функции перетаскивания, это мой способ предотвратить выбор содержимого при перетаскивании пользователя:
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
с вашим dom:
<button onmousedown="startDrag">...</button>
Если вы хотите статически отключить выбор текста во всем элементе, выполните код при загрузке элементов:
window.addEventListener('selectstart', function(e){ e.preventDefault(); });
Ответ 3
Для JavaScript используйте эту функцию:
function disableselect(e) {return false}
document.onselectstart = new Function (return false)
document.onmousedown = disableselect
чтобы включить выбор:
function reEnable() {return true}
и используйте эту функцию в любом месте:
document.onclick = reEnable
Ответ 4
Если вы получили HTML-страницу, как это:
<body
onbeforecopy = "return false"
ondragstart = "return false"
onselectstart = "return false"
oncontextmenu = "return false"
onselect = "document.selection.empty()"
oncopy = "document.selection.empty()">
Там простой способ отключить все события:
document.write(document.body.innerHTML)
Вы получили HTML-контент и потеряли другие вещи.
Ответ 5
Просто скопируйте этот текст и поместите его перед </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
}
Ответ 6
Можно также использовать:
onselectstart = (e) => {e.preventDefault()}
Пример:
onselectstart = (e) => {
e.preventDefault()
console.log("nope!")
}
Select me!