onmousedown IE8无法正常工作

时间:2013-08-22 20:59:44

标签: javascript html internet-explorer internet-explorer-8

我创造了类似这样的东西

<textarea id='txtarea'>Dear Sir/Madam








Sincerely,

[Your Name]
</textarea><br/><input id="btn" value='Add Date' type="button"/>

<script>
var textarea=document.getElementById('txtarea'),pos=0
textarea.focus()
document.getElementById('btn').onclick=addDate
document.getElementById('btn').onmousedown=function(){return false}
function addDate(){  
textarea.innerHTML+="\n"+new Date().toUTCString()
} 
</script>

所有这些代码在除IE 8及更低版本之外的所有浏览器上都能正常运行...问题是:

当textarea聚焦并且用户单击“添加日期”按钮时,不需要取消选择textarea(onmousedown=function(){return false})。在IE 8及更低版本中,它被取消选择(我认为return false无效)。

如何支持IE 8及更低版本。

Jsfiddle

2 个答案:

答案 0 :(得分:2)

在较旧的IE中,可以使用unselectable属性。通过设置它on可以防止具有该属性的元素接收焦点。

<input id="btn" value='Add Date' type="button" unselectable="on" />

我刚才找不到任何文档,但是如果我能够正确回想起来,那么这个属性需要按字面设置为标记,或者可以使用setAttribute()以编程方式设置。设置unselectable属性没有效果。


关于semicolons的文章。虽然文章也解释了,但是当你可以省略分号时,最安全的就是使用分号。

答案 1 :(得分:0)

也许这有效(未在ie中测试)

document.getElementById('btn').onmousedown = function(e) {
    e.preventDefault();
    return false;
}