如何在所有浏览器的textarea中为所选文本添加<b> </b> <i> </i>标签?

时间:2013-11-14 17:11:22

标签: javascript html

如何创建一些javascript来执行以下操作 - 当用户点击“BOLD”按钮时,所选文本会收到“<b>”和“</b>”。此代码仅适用于IE。如何在所有浏览器中使用此功能。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

</head>

<body>
<script type="text/javascript"> 
function formatText (tag)
{
    if (typeof document.selection != "undefined")
    {
            var selectedText = document.selection.createRange().text;
            if (selectedText != "")
            {
                var newText = "<" + tag + ">" + selectedText + "</" + tag + ">";
                document.selection.createRange().text = newText;
            }
    } 
}
</script> 
    <textarea name="my_textarea"></textarea><br /> 
    <input type="button" value="bold" onclick="formatText ('b');" /> 
    <input type="button" value="italic" onclick="formatText ('i');" /> 
    <input type="button" value="underline" onclick="formatText ('u');" />     
</body>
</html>

演示:http://jsfiddle.net/9kULw/6/
注意:演示仅适用于IE

1 个答案:

答案 0 :(得分:1)

这似乎是这样做的:http://jsfiddle.net/9kULw/10/

function formatText(tag) {
    var myTextArea = document.getElementById('my_textarea');
    var myTextAreaValue = myTextArea.value;
    var updatedText = '<'+tag+'>' + myTextAreaValue + '</'+tag+'>';
    myTextArea.value = updatedText;
}