Делать вещи не выбираемыми в IE - PullRequest
7 голосов
/ 15 декабря 2010

Вот мой график, который я писал в JS:

http://jsfiddle.net/49FVb/

CSS:

-moz-user-select:none;
-khtml-user-select: none;

Работает нормально для Chrome / FF, нов IE все элементы по-прежнему выбираются, что выглядит странно при перетаскивании панелей.

Как я могу сделать это невыбираемым в IE?

Ответы [ 4 ]

14 голосов
/ 15 декабря 2010

В IE вам необходим атрибут unselectable в HTML:

<div id="foo" unselectable="on">...</div>

... или установите его с помощью JavaScript:

document.getElementById("foo").setAttribute("unselectable", "on");

Следует помнить, что невыбираемость не наследуется детьми неотбираемого элемента. Это означает, что вы должны либо поместить атрибут в начальный тег каждого элемента внутри <div>, либо использовать JavaScript для рекурсивного выполнения этого для потомков элемента:

function makeUnselectable(node) {
    if (node.nodeType == 1) {
        node.setAttribute("unselectable", "on");
    }
    var child = node.firstChild;
    while (child) {
        makeUnselectable(child);
        child = child.nextSibling;
    }
}

makeUnselectable(document.getElementById("foo"));
5 голосов
/ 15 декабря 2010

Вы можете использовать Javascript, чтобы сделать текст недоступным для выбора во всех браузерах:

document.onselectstart=new Function('return false');
function noselect(e){return false;}
function click(){return true;}
document.onmousedown=noselect;
document.onclick=click;

Другой способ описан в этой теме SO: Есть ли способ сделать текст невыбираемым на странице HTML?

Вероятно, самый дешевый способ - это <body onselectstart="return false">

. Лучше всего, хотя, возможно, использовать следующий CSS:

[unselectable=on] { -moz-user-select: none; -khtml-user-select: none; user-select: none; }

и добавить IE без возможности выборасвойство для элементов, которые вы хотите сделать невыбираемыми (unselectable="on" в HTML; element.setAttribute("unselectable","on") в javascript)

Ознакомьтесь с этой замечательной небольшой статьей о невыбираемом тексте .

1 голос
/ 08 марта 2014

Пока что это хорошо работает в Chrome и IE11, используя JQuery ...

function fMakeNodeUnselectable(node){      
    $(node).css({"cursor":"default","-moz-user-select":"-moz-none","-khtml-user-select":"none","-webkit-user-select":"none","-o-user-select":"none","user-select":"none"});
    $(node).attr("unselectable","on");
}   
1 голос
/ 15 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...