1

一天中的大部分时间我一直在努力解决这个问题,所以非常欢迎任何帮助......

<body>
<form id="form1" runat="server">
<script type="text/javascript">
  $(function () {
    ChangeText("This is the changed text from the document ready function");
  });

  function ChangeText(newText) {
    var editorControl = $("#txtHTMLEditor");

    editorControl[0].value = newText;
  }

</script>
<div>
  <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
  </ajaxToolkit:ToolkitScriptManager>

  <div id="divTemp" style="display: block">
    <asp:TextBox runat="server" ID="txtHTMLEditor" TextMode="MultiLine" Rows="25" Width="100%" Text="<b>This is test text</b>" /><br />
    <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender1" TargetControlID="txtHTMLEditor" runat="server" DisplaySourceTab="true">
    </ajaxToolkit:HtmlEditorExtender>
  </div>

  <input type="button" onclick="ChangeText('This is the changed text from the button click event'); return false;" value="Perform Change">
</div>
</form>

上面的代码在文档就绪事件中完美地更改了 html 编辑器中的文本,但是如果我单击按钮,则什么也不做。

这两个事件触发相同的 javascript 函数 (ChangeText()),文本区域的值在两个实例中都被更改,但在按钮单击事件的情况下,更改不会显示在文本区域中。

有什么想法为什么不呢?

4

2 回答 2

0

HtmlEditorExtender 的 HTML 内容的位置可能随着时间而改变。这就是我在工具包 7.1005 版中的做法。

            var htmlSource = $('#<%= DescriptionEnglishEditor.ClientID %>Extender_ExtenderContentEditable').html();
            $('#<%= DescriptionFrenchEditor.ClientID %>Extender_ExtenderContentEditable').html(htmlSource);

关键是要在 DOM 中找到存储 HTML 的对象并正确引用它。

于 2015-02-24T07:08:16.420 回答
0

您需要通过 HTMLEditorExtender 的客户端界面更改文本:

  function ChangeText(newText) {
    var editorControl = $find("<%=htmlEditorExtender1.ClientID%>");
    editorControl._editableDiv.innerHTML = newText;
  }
于 2013-11-06T08:11:45.750 回答