我创造了类似这样的东西
<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及更低版本。
答案 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;
}