在我的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语句返回一个空值。
答案 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或某些函数调用,这对我的情况不起作用。