2010-09-24 55 views
0

如何在JavaScript中的div元素上設置光標?將光標設置在div元素上?

我有一個窗體(div元素沒有輸入),並附上一個文本字符串。我想刪除文本字符串,並將光標設置在元素onclick的開頭。

我已刪除了與onclick事件在div元素內容:divElement.innerHTML = '';

現在我想光標設置?

+0

鑑於「div」不可編輯,編輯光標將如何顯示? – 2010-09-24 10:14:13

+1

爲什麼不使用文本框? – 2010-09-24 10:15:44

回答

1

如果通過'遊標',你的意思是文本光標(即插入符號),我認爲你真正要問的是如何使一個div進入一個可編輯的內容框。

你需要的是在你的div上設置contentEditable屬性。

如果你想要編輯從一開始,就包括在您的HTML代碼:

<div contentEditable="true">....</div> 

如果你想將其打開/關閉,您可以將其設置在javascript:

mydiv.contentEditable="true" 

但是,我唯一能想到的是何時使用contentEditable而不是textarea更好,如果您正在編寫WYSIWYG HTML編輯器。

其餘大部分時間我會說可能最好使用<textarea>。您可以將其設置爲您網頁的其餘部分,並且可以在不需要更改時將其設置爲只讀或禁用。但在JavaScript和Javascript中使用它更容易。使用div的問題是,它可能包含其他html標籤,這可能會影響它的工作方式,並且如果使其可以直接編輯,可能會使您遇到安全問題。

+0

實際上,對於所見即所得的HTML編輯器,'designMode '會更好 – 2010-09-24 10:31:28

+0

我試過文本區域,它的工作!但我使用谷歌瀏覽器如何刪除在徹頭徹尾的地區醜陋的標記?醜陋的標記出現在textarea標記中 – einstein 2010-09-24 10:40:06

+0

Chrome和Safari允許用戶調整文本框的大小。這就是那些標記在底角的地方。您可以通過將max-height和max-width設置爲與樣式表中框的高度和寬度相同來擺脫它;這會關閉調整大小的能力。 – Spudley 2010-09-24 11:01:36

2

如果你指的是鼠標指針,使用CSS樣式cursor像這樣:

#mydiv { 
    cursor: help; 
} 

有,你可以使用標準的選項的整個負載。您還可以定義一個圖形用作指針(儘管這具有跨瀏覽器兼容性問題)。

請參閱this page on Quirksmode瞭解更多信息。

同樣,如果要動態做它在JavaScript,然後只需設置對象的樣式:

document.getElementById('mydiv').style.cursor = 'help'; 
+0

我想你錯過了我的問題。我有一個表單(div元素沒有輸入!),它上面有一個文本字符串。點擊該div元素我希望將光標設置在div元素的開頭,以便用戶可以填寫表單。在onclick事件 – einstein 2010-09-24 10:10:19

+0

好了之後,文本字符串將被刪除,所以你的意思是文本光標,而不是鼠標光標? (是的,這兩個詞都使用相同的術語是令人困惑的。如果你想區分它們,你可以使用'pointer'作爲鼠標,'caret'作爲文本) – Spudley 2010-09-24 10:17:31

+0

設置文本光標的另一個答案.... – Spudley 2010-09-24 10:20:30

0

divElement.style.cursor = '什麼';

如果你想移動遊標要超過divElement,那麼你不能。