在沒有合適的事件,如select
和selectstart
(這確實是沒有在Firefox中,它具有select
事件,但只適用於它形成對照),所有你可以做的就是使用鼠標和鍵盤事件,就像你在問題中提出的那樣。防止文檔中所有mousedown
事件的默認操作是不好的,因爲它會阻止所有交互式元素(如鏈接和表單元素)運行。相反,您可以執行類似於以下的操作,即使用鼠標和鍵盤進行選擇。
它不會阻止通過上下文中的「全選」和編輯菜單進行選擇,因爲根本無法在Firefox中檢測到這些選項。如果你需要處理這個問題,那麼投票選舉是你唯一的希望。
function killSelection() {
window.getSelection().removeAllRanges();
}
document.addEventListener("mousedown", function(evt) {
document.addEventListener("mousemove", killSelection, false);
}, false);
document.addEventListener("mouseup", function(evt) {
document.removeEventListener("mousemove", killSelection, false);
}, false);
document.addEventListener("keydown", killSelection, false);
window.addEventListener("blur", function(evt) {
document.removeEventListener("mousemove", killSelection, false);
}, false);
IE和Opera實現不可選擇屬性(BTW) – 2011-03-06 16:46:35