Как отключить выбор текста на Firefox в JavaScript

javascript

557 просмотра

2 ответа

101 Репутация автора

Я использую этот CSS, чтобы отключить выбор текста. Работает в Chrome и Safari, но не в Firefox

*.e-pdfviewer-pageCanvas {
    -moz-user-select: -moz-none !important;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    user-select: none;
}

*.e-pdfviewer-pageCanvas * {
    -moz-user-select: text;
    -khtml-user-select: text;
    -webkit-user-select: text;
    -o-user-select: text;
    user-select: text;
}
Автор: Mohan Selvaraj Источник Размещён: 19.07.2016 07:07

Ответы (2)


1 плюс

5227 Репутация автора

Попробуйте этот простой плагин jQuery:

jQuery.fn.extend({
    disableSelection : function() {
        this.each(function() {
            this.onselectstart = function() { return false; };
            this.unselectable = "on";
            jQuery(this).css({
                 '-moz-user-select': 'none'
                ,'-o-user-select': 'none'
                ,'-khtml-user-select': 'none'
                ,'-webkit-user-select': 'none'
                ,'-ms-user-select': 'none'
                ,'user-select': 'none'
            });
        });
    }
});

$('.e-pdfviewer-pageCanvas').disableSelection();
Автор: Sergey Gornostaev Размещён: 19.07.2016 07:10

2 плюса

8129 Репутация автора

С помощью следующего кода вы можете отключить выбор текста на всей веб-странице, кроме inputsиtextareas :

document.getElementsByTagName("BODY")[0].onselectstart = function(e) {
    if (e.target.nodeName != "INPUT" && e.target.nodeName != "TEXTAREA") {
        e.preventDefault();
        return false;
    }
    return true;
};

С другой стороны , если вы хотите , чтобы отключить выделение текста полностью вы можете использовать этот код:

document.getElementsByTagName("BODY")[0].onselectstart = function(e) {
    e.preventDefault();
    return false;
};

Если вы хотите отключить выделение текста только для элементов, имеющих класс, .e-pdfviewer-pageCanvasвы можете использовать:

var pdfviewer = document.getElementsByClassName("e-pdfviewer-pageCanvas");

for (var i = 0; i < pdfviewer.length; i++) {
    pdfviewer[i].onselectstart = function(e) {
        e.preventDefault();
        return false;
    };
};

[РЕДАКТИРОВАТЬ]:

Если ни одна из вышеупомянутых проблем не решила вашу проблему, используйте следующий код в своем HTML <body>или элемент, для которого вы хотите отключить выделение текста:

<body onselectstart = "return false;" style = "-moz-user-select: none;">...</body>

Или в JavaScript:

document.getElementsByTagName("BODY")[0].onselectstart = function(e) {return false};

document.getElementsByTagName("BODY")[0].style.mozUserSelect = "none";
Автор: Angel Politis Размещён: 19.07.2016 07:15
Вопросы из категории :
32x32