Вопрос

Как изменить настройки по умолчанию для ACT HTML Editor? Я хочу загрузить редактор, например, с выделенной жирным шрифтом кнопкой или с направлением rtl вместо ltr по умолчанию.
Как я могу это выполнить?Я переопределил FillTopToolbar() способ добавления пользовательских кнопок, но я не знаю, как изменить настройки по умолчанию.
поскольку по умолчанию выбран ltr, я хочу изменить его на rtl.

Это было полезно?

Решение

Я отредактировал свой ответ, чтобы исправить некоторые вещи

HTMLEditor не предоставляет способа установить состояние этих кнопок с помощью серверного кода.Хотя на клиенте он инициализируется с помощью Система.Приложение.событие загрузки.Если вы запустили свой код после их инициализаторов, но до того, как пользователь начнет взаимодействовать с пользовательским интерфейсом, вы могли бы затем установить любые свойства, которые вы хотите установить в этом обработчике событий.

Вот код, необходимый для установки выделенных жирным шрифтом кнопок и состояний кнопок rtl.Вы можете воспользоваться этим отсюда, если хотите изменить состояния других кнопок:

// Attach a handler to the load event.
Sys.Application.add_load(myOnLoadLoader);

function myOnLoadLoader() {
    //This will run JUST after ALL code that was set to run during the load event has run
    window.setTimeout(myOnLoad, 0);
}

function myOnLoad() {
    var editor = $find('<% =editor.ClientID %>');
    var toolbar = editor.get_changingToolbar();
    var toolbarButtons = toolbar.get_buttons();
    for (var i = 0; i < toolbarButtons.length; i++) {
        var toolbarButton = toolbarButtons[i];
        if (toolbarButton instanceof AjaxControlToolkit.HTMLEditor.ToolbarButton.Rtl ||
        toolbarButton instanceof AjaxControlToolkit.HTMLEditor.ToolbarButton.Bold) {
            toolbarButton.set_activeEditPanel(editor.get_editPanel());
            toolbarButton.callMethod();
        }
    }
}

Sys (и, следовательно, Sys.Application) - это пространство имен, которое происходит из ASP.Чистый AJAX javascript (файлы, которые добавляются благодаря ScriptManager, который вы добавляете на свою страницу).Если вы используете это, вы должны быть уверены, что эта строка Sys.Application.add_load(myOnLoad); бежит за ЖЕРЕХОМ.Загружаются чистые AJAX-файлы.Вы можете сделать это несколькими способами:

  1. Добавьте этот скрипт ниже на странице, чем ScriptManager.
  2. Переместите ваш скрипт в отдельный JS-файл и используйте ScriptManager для его загрузки (рекомендуется).

Если вы переместите свой скрипт в отдельный файл, вы заметите, что var editor = $find('<% =youreditor.ClientID %>'); больше не работает.Это связано с тем, что файлы javascript не анализируют серверные теги и не заменяют их значением на стороне сервера (как это делают aspx-страницы).Итак, часть, которая является проблемой здесь, заключается в следующем <% =youreditor.ClientID %>.

Чтобы исправить это, вот что вы делаете:

Добавьте это в свою разметку aspx (в разделе head):

<script language="javascript">
    var myEditorId = '<%= youreditor.ClientID %>';
</script>

Итак, это выглядит примерно так:

<head runat="server">
    <script language="javascript">
        var myEditorId = '<%= youreditor.ClientID %>';
    </script>
<title></title>
</head>

(Если вы используете главную страницу, вы просто добавите тег script под ScriptManager на своей странице)

И в вашем JS-файле замените это

var editor = $find('<% =youreditor.ClientID %>');

с помощью этого

var editor = $find(myEditorId);

Другие советы

Вам нужно будет сделать это с помощью CSS, поскольку элемент управления editor изначально не поддерживает rtl.Следующий CSS установит направление на rtl -

div
{
    direction:rtl;
}

Стили по умолчанию для редактора HTML можно найти в файле Editor.css.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top