在我的aspx中,我有以下代码段,它可以正确地从ajaxtool
呈现编辑器控件<div>
<ajaxToolkit:Editor ID="Editor" runat = "server" />
</div>
在C#中,访问编辑器的内容只是:
Editor.Content = "some text here"
但是,在JavaScript中,我不确定如何访问它。到目前为止,我已经尝试了:
var st =$find('<%=Editor.ClientID%>').get_content();
但是,$查找语句正在返回零值。
它应该起作用。我尝试了以下代码,并成功找到了编辑器组件。
<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事件处理程序中访问您的编辑器。如果这对您有所帮助,那么问题的原因是您在页面完成组件初始化之前尝试查找组件。
在使用此功能后,我注意到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或某些功能调用,这对我的情况不起作用。