如何用javascript在句子中加入空白
我現在有一個textarea,裡面預設已經有一些文字ex: ____________________________________________________
| |
| 建議使用IE6.0或Mozilla Firefox |
| 並將螢幕解析度設定為1024*768,以獲得最佳瀏覽效果。 |
|____________________________________________________ |
想要有這些功能
1.使用者再任何字與字之間click時,會自動加入全行空白
2.如果是在空白的地方click則空白會移掉,讓兩個字合併在一起
ex:在 "議" 與 "使" 之間click變成
____________________________________________________
| |
| 建議 使用IE6.0或Mozilla Firefox |
| 並將螢幕解析度設定為1024*768,以獲得最佳瀏覽效果。 |
|____________________________________________________|
想請問我要怎樣使用javascript去抓字串的位置來插入空白呢?
有需要用滑鼠位置來判斷嗎? 或是有其他更好的方法?
3.希望可以記錄使用者插入空白的順序和時間 這大概不好辦……英文字的大小都不一樣呢…… 這樣的功能是可以做,不過你得自己試試看囉,針對 IE 和支援 W3C 標準的瀏覽器有不同的方式。
IE 請參考 createRange 和相關的文件:
[url]http://msdn.microsoft.com/en-us/library/ms536394[/url](VS.85).aspx
W3C 的參考文件:
[url]http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html[/url]
底下這個片段是取得選取範圍的文字,你可以從這邊開始學習怎麼做:
[code js]
function getSel() {
var editdoc = document.getElementById('tt');
if (typeof editdoc.selectionStart != 'undefined') {
return editdoc.value.substr(editdoc.selectionStart, editdoc.selectionEnd - editdoc.selectionStart);
} else if(document.selection && document.selection.createRange) {
return document.selection.createRange().text;
} else {
return false;
}
}
$('#tt').mouseup(function() {
alert(getSel());
});
[/code]
首先把 id=tt 這個 textarea 綁定一個 mouseup 事件,選取文字完成後就會被驅動,這時會依據瀏覽器支援的功能,用不同的方式獲得選取的文字範圍。
至於你要做的不是「選取範圍」,但是是有相關的,可以用這一類的功能得知滑鼠坐落位置的前後是否為空白,或是文字,再接著用替代的方式將「空的選取範圍」給取代掉即可達到你的需求。
頁:
[1]