AJAX控件工具包控件编辑器Javascript访问

时间:2012-10-23 19:20:20

标签: javascript jquery asp.net

在我的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语句返回一个空值。

2 个答案:

答案 0 :(得分: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事件处理程序中访问您的编辑器。如果这对您有帮助,那么问题的原因是您在页面完成组件初始化之前尝试查找组件。

答案 1 :(得分: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或某些函数调用,这对我的情况不起作用。