JavaScript WYSIWYG富文本编辑器

时间:2010-12-29 20:49:27

标签: javascript richtextbox wysiwyg

在输入框内设置文本样式的基本方法是什么?你能告诉我一个如何分别改变文字颜色的最简单的例子吗?

2 个答案:

答案 0 :(得分:3)

非常简单:

window.document.designMode = “On”;

document.execCommand(‘ForeColor’, false, ‘red’);

更多细节:

http://shakthydoss.com/javascript/html-rich-text-editor/

然后

http://shakthydoss.com/javascript/stxe-html-rich-text-editor/

答案 1 :(得分:0)

您可以采用4种方法

  1. 创建一个textarea。让用户修改内容。在按键或按钮上单击insertHtml以预览div。 Trix使用相同的方法,但以编程方式。
  2. 添加一些textarea。使用一些可以渲染textarea内容的降价处理器。
  3. 处理闪烁光标的每个动作,并实现类似Google文档的内容,而不使用execCommands。我相信quilljs也没有使用execCommands。
  4. 您可以使用几乎所有现代浏览器都支持的execCommands。这是最简单的example。或者检查this示例,该示例使用这个小代码来运行一组execCommands来创建一个富文本编辑器。您可以进一步简化它。
  5. 示例

    angular.module("myApp", [])
        .directive("click", function () {
            return {
                restrict: "A",
                link: function (scope, element, attrs) {
                    element.bind("click", function () {
                        scope.$evalAsync(attrs.click);
                    });
                }
            };
        })
        .controller("Example", function ($scope) {
            $scope.supported = function (cmd) {
                var css = !!document.queryCommandSupported(cmd.cmd) ? "btn-succes" : "btn-error"
                return css
            };
            $scope.icon = function (cmd) {
                return (typeof cmd.icon !== "undefined") ? "fa fa-" + cmd.icon : "";
            };
            $scope.doCommand = function (cmd) {
                if ($scope.supported(cmd) === "btn-error") {
                    alert("execCommand(“" + cmd.cmd + "”)\nis not supported in your browser");
                    return;
                }
                val = (typeof cmd.val !== "undefined") ? prompt("Value for " + cmd.cmd + "?", cmd.val) : "";
                document.execCommand(cmd.cmd, false, (cmd.val || ""));
            }
            $scope.commands = commands;
            $scope.tags = [
        'Bootstrap', 'AngularJS', 'execCommand'
      ]
        })