在Web应用程序中禁用默认文本选择

问题描述:

当我通过在gridview中按shift键选择一堆行时,默认文本选择(深蓝色)与自定义行选择颜色混合在一起。在Web应用程序中禁用默认文本选择

如何在Web应用程序中禁用默认文本选择。

+0

您能发送链接吗? – o15a3d4l11s2 2010-07-29 13:18:54

+0

模糊,没有代码等 – lincolnk 2010-07-29 13:22:55

这对我的作品在这两个FF和IE浏览器禁用“选择”:

// jQuery Solution 
$(document).mousedown(function (e) 
{ 
    return false; 
}); 

$(document).bind("selectstart", function (e) 
{ 
    return false; 
}); 

如果你不使用jQuery,这里的纯JavaScript解决方案。

// Vanilla Javascript Solution 
function attachEvent(element, eventName, handler) 
{ 
    if(element.addEventListener) 
    { 
     element.addEventListener(eventName, handler, false); 
    } 
    else 
    { 
     element.attachEvent("on" + eventName, handler); 
    } 
} 

attachEvent(document, "mousedown", function (e) 
{ 
    if(window.addEventListener) 
    { 
    e.preventDefault(); 
    } 
    return false; 
}); 

attachEvent(document, "selectstart", function (e) 
{ 
    return false; 
}); 
+0

感谢它也适用于我...... :) – Hukam 2010-07-29 14:37:25

+1

@chand - 请记住,这是禁用* mousedown * *整个文档对象。你可能想给它一点范围...... – TheCloudlessSky 2010-07-29 14:41:19

+1

@chand - 对于FF,你也可以执行'document.body.style.MozUserSelect =“none”;'来禁用选择。 – TheCloudlessSky 2010-07-29 14:45:12

浏览器选择发生在您点击某处然后在其他地方移动+ mousedown时,因此您需要取消第二个mousedown。要做到这一点,你需要

return false; 

添加到您的onmousedown事件事件处理程序。

你的意思是你的文字被选中?

您必须在您的选择中禁用文字选择,see here how to do it

+0

@ BrunLM - 仍然面临问题。它不取消选择文本。 – Hukam 2010-07-29 13:55:20