星期四, 12月 17, 2009

取消文字選取狀態

由於作了拖拉物件功能,在廣大的區域移動會造成選取的狀態,整片反白影響了外觀。所以只好在拖拉物件的觸發事件內加了一些取消文字選取狀態的程式碼。

寫了一下範例,開關選取文字狀態的按鈕:



範例文字選擇


<body>
<
script>
function 
undoSelect () {
    
document.onselectstart = new Function("return false;");
    
document.body.style.MozUserSelect 'none';
}

function 
doSelect ()
{
    
document.onselectstart = new Function("return true;");
    
document.body.style.MozUserSelect 'text';
}
</script>
<div>範例文字選擇</div>
<input type=button value="可選擇" onClick='doSelect()'>
<input type=button value="不可選擇" onClick='undoSelect()'>
</body>


這個範例程式碼,是針對整份文件的設定 ( document),如果要改某些區域 (如div),則換成相關物件即可。

若要將文件選取的狀態取消,則要將物件的 onselectstart 這個觸發事件中,指定一個 function 傳回 false。這個方法在 IE/Chrome 是可執行的,但 Firefox 必須透過 style去改變可選取的屬性,於是必須加一行程式碼給他辨識,obj.style.MozUserSelect = 'none';

反之則傳回 true 和屬性MozUserSelect設為 text 或設"空白" (使用預設=text)

這樣在拖拉物件時,就可以輕易的變動文字選取狀態,拖拉物件完畢後,恢復原狀即可。

沒有留言:

張貼留言

我的意見