如下代码
只有第3个函数可以实现文本不可选,其他2个函数都失效,为什么会这样??
addEventListener方法我应该没用错啊...
我测试过下面这样是可以的啊...
target.addEventListener("selectstart", function() { alert("chrome"); }, false);<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="JavaScript" type="text/javascript">
function returnFalse() { return false; }; function ds1(target) {
target.addEventListener("selectstart", function() { return false; }, false);
target.style.cursor = "default";
}; function ds2(target) {
target.addEventListener("selectstart", returnFalse, false);
target.style.cursor = "default";
}; function ds3(target) {
target.onselectstart = function() { return false; };
target.style.cursor = "default";
};
</script>
</head>
<body>
<button onclick="ds1(document.body)">DisableSelection_1</button><br />
<button onclick="ds2(document.body)">DisableSelection_2</button><br />
<button onclick="ds3(document.body)">DisableSelection_3</button><br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
</body>
</html>
只有第3个函数可以实现文本不可选,其他2个函数都失效,为什么会这样??
addEventListener方法我应该没用错啊...
我测试过下面这样是可以的啊...
target.addEventListener("selectstart", function() { alert("chrome"); }, false);<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="JavaScript" type="text/javascript">
function returnFalse() { return false; }; function ds1(target) {
target.addEventListener("selectstart", function() { return false; }, false);
target.style.cursor = "default";
}; function ds2(target) {
target.addEventListener("selectstart", returnFalse, false);
target.style.cursor = "default";
}; function ds3(target) {
target.onselectstart = function() { return false; };
target.style.cursor = "default";
};
</script>
</head>
<body>
<button onclick="ds1(document.body)">DisableSelection_1</button><br />
<button onclick="ds2(document.body)">DisableSelection_2</button><br />
<button onclick="ds3(document.body)">DisableSelection_3</button><br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
sdfkjskdjflksjdflkjsakdljfslkadjflksjdfk<br />lsjdlfkjskldjfksldjf<br />
</body>
</html>
Chrome版本是5.0.375.38
addEventListener是标准(w3c)的事件如:ff
ie 是attchEvent,
else dom.onclick...
function ds1(target) {
target.addEventListener("click", function() { alert("hello"); }, false);
};
这样是可以的哦...
<script language="JavaScript" type="text/javascript">
function returnFalse() {
e.stopPropagation();
e.preventDefault();
return false;
}; function ds1(target) {
target.addEventListener("selectstart", function() {
e.stopPropagation();
e.preventDefault();
return false;
}, false);
target.style.cursor = "default";
}; function ds2(target) {
target.addEventListener("selectstart", returnFalse, false);
target.style.cursor = "default";
}; function ds3(target) {
// 我的理解是,这个并不算动态绑定的事件,所以没有冒泡问题
target.onselectstart = function() { return false; };
target.style.cursor = "default";
};
</script>