0

在我的 aspx 中,我有以下代码片段,它正确地呈现了 AjaxToolkit 中的编辑器控件

<div>
    <ajaxToolkit:Editor ID="Editor" runat = "server" />
</div>

在 C# 中,访问编辑器的内容很简单:

Editor.Content = "some text here"

但是在 JavaScript 中,我不确定如何访问它。到目前为止,我已经尝试过:

var st =$find('<%=Editor.ClientID%>').get_content();

但是 $find 语句返回一个空值。

4

2 回答 2

1

它应该工作。我尝试了以下代码,成功找到了编辑器组件。

<asp:ScriptManager runat="server" ID="ScriptManager" EnablePartialRendering="true">
    <Scripts>
        <asp:ScriptReference Path="Scripts/jquery-1.4.1.js" />
    </Scripts>
</asp:ScriptManager>

<div>
    <ajax:Editor runat="server" ID="Editor"></ajax:Editor>
</div>

<script type="text/javascript">
    Sys.Application.add_load(function() {
        Sys.Debug.traceDump($find('<%= Editor.ClientID %>'), "editor");
    });

</script>

因此,尝试在 Sys.Application.add_load 事件处理程序中访问您的编辑器。如果这对您有帮助,那么问题的原因是您尝试在页面完成组件初始化之前找到组件。

于 2012-10-23T20:09:03.233 回答
0

在玩弄了这个功能之后,我注意到 HTML 看起来像这样:

<iframe id = "Some iFrameId">
    #document
    <html>
        <head>...</head>
        <body>The text of the editor</body>
    </html>
 </iframe>

在 ASPX 中,我做了以下事情来让我的生活更轻松一点:

<div id ="myDiv" ClientIDMode="Static">
    <ajaxToolkit:Editor ID="Editor" runat = "server" />
</div>

通过这样做,我将问题简化为找到包含在 myDiv 中的 iFrame,其中包含编辑器的 HTML。

在 JS 中做到这一点

//get the iFrame
var myIframe = $("#myDiv, iframe") //this returns an array and myIframe[1] is the iFrame, which contains the text.
//get the HTML from the iFrame
var content = myIFrame[1].contentWindow.document.body.innerHTML;

现在内容包含我正在寻找的内容。这有点长,可能有更简单的方法,但在寻找解决方案后,我发现其中大部分是:

做一个 .get_content 或一些函数调用,这对我的情况不起作用。

于 2012-10-25T20:27:01.797 回答