需要使用javascript将所选文本设置为粗体/斜体/下划线,并使用c#保存和检​​索相同的文本

我需要使用javascript制作文本框粗体/斜体/下划线的选定文本。 为此,我使用以下代码。

Bold Italic Underline 

  function changeFont(txt, change) { if (change == 'b') { if (document.getElementById(txt).style.fontWeight == 'bold') document.getElementById(txt).style.fontWeight = 'normal'; else document.getElementById(txt).style.fontWeight = 'bold'; } else if (change == 'i') { if (document.getElementById(txt).style.fontStyle == 'italic') document.getElementById(txt).style.fontStyle = 'normal'; else document.getElementById(txt).style.fontStyle = 'italic'; } else { if (document.getElementById(txt).style.textDecoration == 'underline') document.getElementById(txt).style.textDecoration = 'none'; else document.getElementById(txt).style.textDecoration = 'underline'; } }  

但问题是,当我点击粗体图像时,它会将整个文本变为粗体而不是所选文本。 它也不适用于其他两个图像。

保存文本框的文本时,即使尝试使用,我也无法获取包含html标签的文本

 document.getElementById('TextBox1').innerHTML; 

我只能获得文本框的值。

有没有办法使用javascript或C#保存和检​​索相同的内容

在此先感谢SC

这是一个问题,可以解答您关于获取突出显示文本的问题如何在textarea中获取所选文本?

关于使所选文本变为粗体,您需要使用html标签或bbcode之类的东西,并在将其打印到页面时将其解析为html。

编辑: 这是一个显示jquery插件“fieldselection”的页面。

编辑2:这是我将如何做到这一点的一个例子: jsfiddle链接

HTML:

  

javascript(jquery)代码:

 $(document).ready(function() { $("#editor").keyup(Update); function Update(){ var text = $(this).val(); var result = ParseToHtml(text); $("#resultAsHtml").html(result); $("#resultAsText").text(result); } $("#bold").click(function(){ var range = $("#editor").getSelection(); var textToReplaceWith = "[b]"+ range.text + "[/b]"; $("#editor").replaceSelection(textToReplaceWith , true); var text = $("#editor").val(); var result = ParseToHtml(text); $("#resultAsHtml").html(result); $("#resultAsText").text(result); }); function ParseToHtml(text) { text = text.replace("[b]", ""); text = text.replace("[/b]", ""); text = text.replace(" "," "); text = text.replace("\n",""); return text; } $("#bold").replaceSelection("[b]" + $("#editor").getSelection() + "[/b]", true); }); 

document.execCommand(“bold”,false,null); 这是最简单的技术,适用于所有浏览器……