作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要使用 javascript 将文本框的选定文本设为粗体/斜体/下划线。为此,我使用以下代码。
<img src="~/images/Bold" alt="Bold" onclick="changeFont('TextBox1','b');" />
<img src="~/images/Italic" alt="Italic" onclick="changeFont('TextBox1','i');" />
<img src="~/images/Underline" alt="Underline" onclick="changeFont('TextBox1','u');" />
<script type="text/javascript" language="javascript">
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';
}
}
</script>
但这里的问题是,当我单击粗体图像时,它会使整个文本变为粗体而不是选定的文本。它也不适用于其他两个图像。
保存文本框的文本时,即使尝试使用,我也无法获取包含 html 标签的文本
document.getElementById('TextBox1').innerHTML;
我只能获取文本框的值。
有没有什么方法可以使用 javascript 或 C# 来保存和检索相同的内容
提前致谢SC
最佳答案
这是一个问题,可以回答您有关获取突出显示文本的问题 How to get selected text in textarea?
关于将所选文本设为粗体,您需要使用 html 标签或 bbcode 之类的东西,并在将其打印到页面上时将其解析为 html。
编辑:Here is a page that shows the jquery plugin "fieldselection" in action.
编辑 2:这是我如何完成此操作的示例:jsfiddle link
HTML:
<input id="bold" type="button" value="B" />
<br />
<textarea id="editor"></textarea>
<div id="resultAsHtml"></div>
<br />
<div id="resultAsText"></div>
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]", "<b>");
text = text.replace("[/b]", "</b>");
text = text.replace(" "," ");
text = text.replace("\n","</br>");
return text;
}
$("#bold").replaceSelection("[b]" + $("#editor").getSelection() + "[/b]", true);
});
关于c# - 需要使用 javascript 将所选文本设为粗体/斜体/下划线,并使用 C# 保存和检索相同内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5948601/
由“CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", ES_MULTILINE.."创建的文本框需要\r\n 换行。我将我的 stdoutput 重定向到那个文
我是一名优秀的程序员,十分优秀!