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

发布于 2024-11-06 07:35:43 字数 1602 浏览 6 评论 0原文

我需要使用 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

I need to make selected text of textbox bold/italic/underline using javascript. For that i am using the following code.

<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>

But the issue here is, when i click on bold image its making the whole text into bold but not the selected text. It´s not working for the other two images either.

While saving the text of textbox I am unable to get the text including html tags even after trying with

document.getElementById('TextBox1').innerHTML;

I am able to get only the value of textbox.

Is there any way to save and retrieve the same using javascript or C#

Thanks in advance
SC

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月亮是我掰弯的 2024-11-13 07:35:43

这是一个回答您有关获取突出显示文本的问题的问题
如何获取文本区域中选定的文本?

关于将选定文本设为粗体当您将其打印到页面上时,您需要使用 html 标签或类似 bbcode 的内容并将其解析为 html。

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

2:这是我如何做到这一点的示例: jsfiddle 链接

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);
});

Here is a question that answers your problem about getting the highlighting text
How to get selected text in textarea?

About making the selected text bold you would need to use html tags or something like bbcode and parse it to html when you print it on to a page.

EDIT: Here is a page that shows the jquery plugin "fieldselection" in action.

EDIT 2: Here is an example of how I would've done this: jsfiddle link

The HTML:

<input id="bold" type="button" value="B" />
<br />
<textarea id="editor"></textarea>

<div id="resultAsHtml"></div>
<br />
<div id="resultAsText"></div>

The javascript (jquery) code:

$(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);
});
妄想挽回 2024-11-13 07:35:43

document.execCommand("粗体", false, null);
这是对我有用的最简单的技术
在所有浏览器中...

document.execCommand("bold", false, null);
this is Simplest techinique which worked for me
in all browsers ...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文