我正在使用 AJAX Control 工具包 HTML 编辑器,我希望这是一个简单的问题。正如问题标题所说 - 你如何通过 javascript 获取/设置 HTML 编辑器的内容?
我访问服务器端内容属性没有问题 - 但如何在客户端呢?
任何帮助都感激不尽!
我正在使用 AJAX Control 工具包 HTML 编辑器,我希望这是一个简单的问题。正如问题标题所说 - 你如何通过 javascript 获取/设置 HTML 编辑器的内容?
我访问服务器端内容属性没有问题 - 但如何在客户端呢?
任何帮助都感激不尽!
Html Editor 是独特的 Ajax Control Toolkit 控件之一,因为它既不继承AjaxControlToolkit.ExtenderControlBase
(服务器端)也不继承AjaxControlToolkit.BehaviorBase
(客户端)。
所以你不能使用$find
javascript方法来访问客户端上的行为实例,它继承AjaxControlToolkit.ScriptControlBase
(服务器端)和Sys.UI.Control
(客户端)。
要访问客户端上的控件实例,您可以在它自身的 DOM 元素上使用 control 属性,如下所示:
<script type="text/javascript">
//considering the editor is loaded.
var editorControl = $get("<%=editor.ClientID%>").control;
//1. For setting content:
editorContorl.set_content("Sample Content");
//2. For getting content:
var content = editorContorl.get_content();
</script>
$(function(){
$find("editor").set_content("jQuery set content");
alert($find("editor").get_content());
});
以上答案对我不起作用。所以我不得不挖掘 html 并得到以下工作解决方案。它已经工作了多年,并且在许多框架/操作系统/浏览器更新/升级中幸存下来。
<script type="text/javascript">
var varcont = '<%=txtInstructions.ClientID %>' + '_ctl02_ctl00';
//Get Content
var content = document.getElementById(varcont).contentWindow.document.body.innerHTML;
//Set Content
document.getElementById(varcont).contentWindow.document.body.innerHTML='<b>I rock</b>'
</script>