jquery文本编辑器

时间:2011-12-07 12:49:23

标签: javascript jquery text-editor

我想创建一个jquery文本编辑器,我做了一些谷歌搜索,并得到一些工作的基本功能是当用户突出显示textarea中的文本时,它将在前面添加[b]和[/ b ]在文本的最后,但它的作用是,如果用户再次单击相同的按钮,它将删除所有输入的数据,并且仅将带有[b] [/ b]的突出显示的文本放在此处:

$('#bold').mousedown(function(e) {
    var txt = '';
    if (window.getSelection){
        txt = window.getSelection();
    }
    else if(document.getSelection){
        txt = document.getSelection();
    }
    else if(document.selection){
        txt = document.selection.createRange().text;
    }
    else return;

    txt = "[b]"+txt+"[/b]";

    $('#reply').val(txt); 
});

HTML

<input type="button" value="Bold" id="bold" />
<form action="" method="get">
<textarea name="reply" id="reply" cols="100" rows="30">Test</textarea>
</form>

1 个答案:

答案 0 :(得分:0)

这是因为首次点击后正在清除选择。因此,第二个替换没有要包装的文本,因此只需将[b][/b]添加到textarea。

尝试在if条件下包装进行替换的行,以检查是否选择了某些内容:

if (txt !== undefined && txt.length > 0) {
    txt = "[b]"+txt+"[/b]";
    $('#reply').val(txt);
}

但你的逻辑似乎有缺陷。想象一下textarea中有以下文字:

  

Lorem ipsum dolor坐好。

如果我突出显示ipsum并点击#bold按钮,则textarea会删除所有其他字词,现在只会说:

  

并[b] ipsum的[/ B]

现在还有很多其他jQuery文本编辑器。如果它是一个生产项目,它将为您节省大量时间来使用其中一个。如果你只是想学习jQuery,那么一定要继续。