我在IE9中发现了一些奇怪的行为,包括突出显示禁用文本框内的文本,将光标拖动到文本框外,释放鼠标按钮,然后尝试单击浏览器内的任何其他内容。如果鼠标在文本框外释放,浏览器就好像用户没有释放鼠标按钮一样,不允许用户点击页面上的任何其他元素,甚至不允许用户在浏览器chrome本身中点击。要重新控制鼠标按钮,用户必须再次单击文本框内部或双击文本框外部。
CSS或JS中有没有一种变通方法可以防止这种行为发生?
这里有一个jsFiddle链接,您可以在其中查看自己的行为。
http://jsfiddle.net/FQpRh/embedded/result/
这是展示行为的HTML文档:
<!DOCTYPE html>
<html>
<head>
<title>Drag test</title>
</head>
<body>
<input type="text" disabled="disabled" value="Highlight me" />
<button type="button" onclick="alert('hi');">Now try to click me</button>
</body>
</html>
我想我有一个有效的解决方案来解决这个问题:
捕捉输入type="text"元素所在的父元素上的事件并阻止其默认功能将起到的作用
elparent[0].addEventListener("selectstart", function(e){
e.preventDefault();
});
样本代码:
http://jsfiddle.net/qKtsz/2/