【发布时间】:2010-12-15 07:22:15
【问题描述】:
如何获取用户选择的文本(就在 textarea 内)并对其应用操作,例如包装选择 [#bold]selected text[/bold]?
【问题讨论】:
如何获取用户选择的文本(就在 textarea 内)并对其应用操作,例如包装选择 [#bold]selected text[/bold]?
【问题讨论】:
以 Soufiane 发布的内容为基础,以下是转换为 jquery 的代码,能够传递打开和关闭标签:
function wrapText(elementID, openTag, closeTag) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = openTag + selectedText + closeTag;
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}
用法如下:
wrapText("myTextArea", "[#bold]", "[/bold]");
【讨论】:
textArea[0].selectionEnd = end + openTag.length + closeTag.length;(在最后一行之后)。
if(selectedText != 0) {textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));}
function wrapAsLink(url){
var textarea = document.getElementById("myTa");
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
var replace = '<a href="'+url+'">' + sel + '</a>';
textarea.value = textarea.value.substring(0,start) + replace +
textarea.value.substring(end,len);
}
这个功能可以帮助你做你想做的一些调整。我找到了here。
【讨论】: