2013-08-22 44 views
2

我創建了這樣的事情onmousedown事件IE8不工作

<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

+1

爲什麼不使用分號?我很驚訝,完全可以工作。 – nullability

+0

@nullability,在哪裏? – AMD

回答

2

在舊的IE有unselectable屬性可用。通過設置on可以防止具有該屬性的元素接收焦點。

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

我找不到任何文檔剛纔,但如果我能記錯,這個屬性需要設置wheter字面上標籤或者它可以通過編程與setAttribute()進行設置。設置unselectable屬性沒有效果。


關於semicolons的文章。儘管文章也解釋說,當你可以省略分號時,最安全的是始終使用分號。

0

也許這個工程(即在未測試)

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