9

これが私がJSで書いてきた私のチャートです:

http://jsfiddle.net/49FVb/

CSS:

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

Chrome/FF では正常に動作しますが、IE ではすべての要素が選択可能であり、バーをドラッグすると奇妙に見えます。

IEでこれを選択できないようにするにはどうすればよいですか?

4

4 に答える 4

15

unselectableIE では、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"));
于 2010-12-15T10:34:13.287 に答える
5

Javascript を使用して、すべてのブラウザーでテキストを選択できないようにすることができます。

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

別の方法は、この SO スレッドで説明されています: Is there a way to make text unselectable on an HTML page?

おそらく最も安い方法は<body onselectstart="return false">

ただし、最善の方法は、次の CSS を使用することです。

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

選択不可にしたい要素にIE unselectable プロパティを追加します ( unselectable="on"HTML ではelement.setAttribute("unselectable","on")、javascript では) 。

選択できないテキストに関するこの素敵な小さな記事をチェックしてください。

于 2010-12-15T10:18:20.833 に答える
1

これは、JQueryを使用して、これまでのところChromeとIE11でうまく機能しているようです...

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");
}   
于 2014-03-08T16:53:08.747 に答える
1

属性がありunselectable="on"ます。

http://msdn.microsoft.com/en-us/library/ms537840%28VS.85%29.aspx

関連する SO スレッド: HTML ページでテキストを選択できないようにする方法はありますか?

于 2010-12-15T10:17:41.853 に答える