Необходимо сделать выделенный текст жирным шрифтом / курсивом / подчеркиванием с помощью JavaScript, а также сохранить и извлечь то же самое с помощью C # - PullRequest
5 голосов
/ 10 мая 2011

Мне нужно сделать выделенный текст из текстового поля жирным шрифтом / курсивом / подчеркиванием, используя 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

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Вот вопрос, который отвечает на вашу проблему с получением выделенного текста Как получить выделенный текст в текстовой области?

Чтобы выделить выделенный текст жирным шрифтом, вам потребуется использовать теги html или что-то вроде bbcode и разобрать его в html при печати на странице.

РЕДАКТИРОВАТЬ: Вот страница, которая показывает плагин jquery "fieldselection" в действии.

РЕДАКТИРОВАТЬ 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("  ","&nbsp;");
        text = text.replace("\n","</br>");
        return text;
    }

    $("#bold").replaceSelection("[b]" + $("#editor").getSelection() + "[/b]", true);
});
1 голос
/ 01 декабря 2011

document.execCommand («полужирный», false, null);это самая простая техника, которая работала у меня во всех браузерах ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...