如何在javascript中禁用firefox上的文本选择

时间:2016-07-19 07:07:01

标签: javascript

我正在使用此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;
}

2 个答案:

答案 0 :(得分:2)

使用以下代码,您可以在整个网页中停用文字选择,除了inputstextareas

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";

答案 1 :(得分:1)

试试这个简单的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();