3

如何更改 ACT HTML 编辑器的默认设置?我想使用例如 Selected Bold Button 或 rtl 方向而不是 ltr 默认加载编辑器。
我该怎么做?我重写FillTopToolbar()了添加自定义按钮的方法,但我不知道如何更改默认设置。
由于选择了默认 ltr,我想将其更改为 rtl。

4

2 回答 2

5

我编辑了我的答案以纠正一些事情

HTMLEditor 不提供使用服务器端代码设置这些按钮状态的方法。虽然,在客户端,它使用Sys.Application.load Event进行初始化。如果您在初始化程序之后运行代码,但在用户与 UI 交互之前,您可以设置您想要在该事件处理程序中设置的任何属性。

这是设置粗体按钮和 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.Net AJAX javascript 的命名空间(由于您添加到页面的 ScriptManager 而添加的文件)。如果您使用它,您需要确保该行在Sys.Application.add_load(myOnLoad);ASP.Net AJAX 文件加载后运行。您可以通过以下几种方式做到这一点:

  1. 将此脚本添加到页面低于 scriptManager 的位置。
  2. 将您的脚本移动到一个单独的 JS 文件中,并使用 ScriptManager 加载它(推荐)。

如果您将脚本移动到单独的文件中,您会发现它var editor = $find('<% =youreditor.ClientID %>');不再有效。这是因为 javascript 文件不会解析出服务器标签并将它们替换为服务器端值(就像 aspx 页面那样)。所以这里有问题的部分是<% =youreditor.ClientID %>.

要解决这个问题,您可以这样做:

将此添加到您的 aspx 标记中(在头部):

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

所以它看起来像这样:

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

(如果您使用的是母版页,您只需在页面中的 ScriptManager 下方添加脚本标签)

在你的 JS 文件中,替换这个

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

有了这个

var editor = $find(myEditorId);
于 2010-01-19T02:12:51.633 回答
0

您需要使用 CSS 执行此操作,因为编辑器控件本身不支持 rtl。以下 CSS 将方向设置为 rtl -

div
{
    direction:rtl;
}

HTML 编辑器的默认样式可以在 Editor.css 文件中找到。

于 2010-01-16T04:09:12.073 回答