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

最佳答案

使用以下代码,您可以在除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";

10-06 01:12