3

我正在开发一个 HTML5/javascript/php 项目,我有一个设置为可编辑的项目。

我知道用户可以按下ctrl + b使文本变为粗体,但我也想让用户能够单击网页上的相应按钮来执行相同的操作。

即,当用户键入它将是普通文本时,他们单击网页上的粗体按钮并将其附加<strong>到该部分的 html 中,并且他们现在键入的任何内容都将被保留,直到他们再次按下该按钮然后附加</strong>.

但是,在我追加的那一刻,<strong>它似乎会自动添加</strong>,我想阻止这种情况发生。我是否以正确的方式解决这个问题,或者有更好的方法可以实现这一目标。

下面是我尝试使用的 javascript

function enableDisableBold(section)
{
    var boldEnabled = $("#boldEnabled").val();
    var content = $("#" + section).html();
    var newContent;
    if (boldEnabled == "true")
    {
        $("#btnBold").removeClass("formatButtonsActivated");
        $("#boldEnabled").val("false");
        //newContent = content + "</strong>";
        //$("#" + section).html(newContent);
    }
    else
    {
        $("#btnBold").addClass("formatButtonsActivated");
        $("#boldEnabled").val("true");
        newContent = content + "<strong>";
        $("#" + section).html(newContent.replace("</strong>", ""));
    }

    alert($("#" + section).html());
} 

感谢您的任何帮助,您可以提供。

更新 我刚刚遇到了另一个解决方案,它可以实现我想要实现的目标,但是有一个小问题。在函数调用结束时,我执行以下代码。

var article = document.getElementById(section); 文章.focus(); document.execCommand("粗体", false, null);

问题是这在 Internet Explorer 中运行良好,但在 Chrome 中是我遇到问题的地方。当我将焦点设置回<section>标签时,它会将光标放回文本的开头。我在某处读到onfocus="this.value = this.value;"了控制权,但这无济于事。

我试图找到一种将光标放回字符末尾的方法,但实际上我需要将光标放回原来的位置。这是可以做的事情吗。

4

1 回答 1

0

创建一个强大的元素并将您的内容附加到它

$('<strong />').append(content);
于 2012-10-08T13:50:38.843 回答