1

我正在使用 ACT 4.1.7.607。客户端是 IE 9。

我找不到可以从客户端清除编辑器内容的解决方案。

我尝试过使用 JQuery:

    <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" height="200px" Width="837px"></asp:TextBox>
    <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender" TargetControlID="TextBox1" runat="server" EnableSanitization="False"></ajaxToolkit:HtmlEditorExtender>
    <br /> 
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Submit" />
    <asp:Button ID="Button2" runat="server" Text="Clear" />
    <script type="text/javascript" language="javascript">
        $(document).ready(function () {
            $('#<%=Button2.ClientID%>').click(function () {
                var editorControl = $get("<%=TextBox1.ClientID%>");
                var clearValue = '';
                editorControl.innerHTML = clearValue;
            }) 
        }) 
    </script> 

这似乎改变了文本框的 innerHTML 值。但是,屏幕不会更新以显示更改。

也尝试过 JavaScript:

    <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" height="200px" Width="837px"></asp:TextBox>
    <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender" TargetControlID="TextBox1" runat="server" EnableSanitization="False"></ajaxToolkit:HtmlEditorExtender>
    <br /> 
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Submit" />
    <asp:Button ID="Button2" runat="server" Text="Clear" OnClientClick="javascript:clearEditor()" />
    <script type="text/javascript" language="javascript"> 
        function clearEditor(){ 
            document..getElementById('<%=TextBox1.ClientID%>').innerHTML = '';
        }
    </script>

这似乎也改变了 innerHTML 值,但是,它再次没有显示浏览器窗口中的变化。

我已经看到“解决方案”涉及扩展器的 div 容器或扩展器的“ExtenderContentEditable”属性或扩展器的“setContent”方法——这些都不存在于我的世界中。

如果有解决方案,我将不胜感激。

4

1 回答 1

0

您可以使用此脚本:

function clearHtmlExtender(){
    var extender = $find("<%= htmlEditorExtender.ClientID %>");
    extender._editableDiv.innerHTML = "";
    extender._editableDiv_onblur();
}

简短描述:上面的脚本重置可编辑 div (_editableDiv.innerHTML) 的内容,然后强制扩展器将此 hrml 分配给目标文本框。

于 2013-07-04T07:28:35.197 回答