JavaScript WYSIWYG Rich Text Editor - PullRequest
       20

JavaScript WYSIWYG Rich Text Editor

3 голосов
/ 29 декабря 2010

Каков основной метод оформления текста внутри полей ввода?Можете ли вы показать мне самый простой пример того, как изменить цвет текста отдельно?

Ответы [ 2 ]

3 голосов
/ 12 января 2013

Очень просто:

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/

0 голосов
/ 22 декабря 2016

Есть 4 подхода, которые вы можете принять

  1. Создать текстовую область. Позвольте пользователю изменять контент. При нажатии клавиши или нажатии кнопки insertHtml для предварительного просмотра div. Trix использует тот же подход, но программно.
  2. Добавьте немного текстовой области. Используйте какой-нибудь процессор уценки, который может визуализировать содержимое textarea.
  3. Обрабатывать каждое движение мигающего курсора и реализовывать что-то вроде Google docs, в котором не используются команды execCommands. Я считаю, что quilljs также не использует execCommands.
  4. Вы можете использовать execCommands, которые поддерживаются практически всеми современными браузерами. Вот самый простой пример . Или проверьте этот пример, который использует этот небольшой код для запуска набора execCommands для создания редактора форматированного текста. Вы можете упростить это больше.

Пример * ** тысяча двадцать-один * тысяча двадцать два 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' ] })

...