以编程方式为html5中的可编辑部分启用<strong> </strong>

时间:2012-10-07 16:25:27

标签: javascript html5

我正在开发一个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); article.focus(); document.execCommand(“Bold”,false,null);

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

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

1 个答案:

答案 0 :(得分:0)

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

$('<strong />').append(content);