彻底解决aspKindEditor编辑器无法获得提交的数据问题
1. 修改HTML页面
1 在需要显示编辑器的位置添加textarea输入框。
<textarea id="editor_id" name="content" style="width:700px;height:300px;">
<strong>HTML内容</strong>
</textarea>
Note
id在当前页面必须是唯一的值。
在textarea里设置HTML内容即可实现编辑,在这里需要注意的是,如果从服务器端程序(ASP、PHP、ASP.NET等)直接显示内容,则必须转换HTML特殊字符(>,<,&,”)。具体请参考各语言目录下面的程序,目前支持ASP、ASP.NET、PHP、JSP。
在有些浏览器上不设宽度和高度可能显示有问题,所以最好设一下宽度和高度。宽度和高度可用inline样式设置,也可用 编辑器初始化参数 设置。
2 在该HTML页面添加以下脚本。
<scriptcharset="utf-8" src="/editor/kindeditor.js"></script>
<scriptcharset="utf-8" src="/editor/lang/zh_CN.js"></script>
<script>
        var editor;
        KindEditor.ready(function(K) {
                editor = K.create('#editor_id');
        });
</script>
Note
第一个参数可用其它CSS选择器,匹配多个textarea时只在第一个元素上加载编辑器。
通过K.create函数的第二个参数,可以对编辑器进行配置,具体参数请参考 编辑器初始化参数
var options = {
        cssPath : '/css/index.css',
        filterMode : true
};
var editor = K.create('textarea[name="content"]', options);
2. 获取HTML数据
// 取得HTML内容
html = editor.html();
// 同步数据后可以直接取得textareavalue
editor.sync();
html = document.getElementById('editor_id').value; // 原生API
html = K('#editor_id').val(); // KindEditor Node API
html = $('#editor_id').val(); // jQuery
// 设置HTML内容
editor.html('HTML内容');
asp数据Note
KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,
所以最后提交前需要将HTML数据同步到原来的textarea,editor.sync()函数会完成这个动作。
KindEditor在默认情况下自动寻textarea所属的form元素,到form后onsubmit事件里添加sync函数(onsubmit="javascript:editor.sync();"),所以用form方式提交数据,不需要手动执行sync()函数。
Html中form如下:
<form name="myform" method="post" action="地址"  onsubmit="javascript:editor.sync();">
3. 我应用的完整案例(asp环境下的)
需要调用编辑器页面添加如下脚本(绿标):
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script src="kindeditor/kindeditor.js"></script>
<script src="kindeditor/lang/zh_CN.js"></script>
<script>
        var editor;
        ady(function(K) {
            editor = K.create('#editor_id');
        });
       
        var editor = K.create('textarea[name="content"]', options);
       
        html = editor.html();
        // 同步数据后可以直接取得textareavalue
        editor.sync();
        html = ElementById('editor_id').value; // 原生API
        html = K('#editor_id').val(); // KindEditor Node API
        html = $('#editor_id').val(); // jQuery
       
        // 设置HTML内容
        editor.html('HTML内容');
</script>
</head>
<body>
<table width="100%" border="5" align="center" cellpadding="5" cellspacing="5" bordercolor="#CCCCCC" bgcolor="#FFFFFF">
<tr>
  <td height="20" bgcolor="#F2f2f2">添加信息</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">
<form name="myform" method="post" action="b_saveaddproduct.asp?action=add" onsubmit="javascript:editor.sync();">
<textarea id="editor_id" name="content" ></textarea>
<input name="Submit" type="submit" class="input_bot" onClick="return checkpro();" value="添 加" />
</form>
</td></tr> </table>
<body>
</html>
说明:onClick="return checkpro();"为提交表单的验证脚本,验证的JavaScript 就不用赘述了。声明一下 折腾了两天才搞定的,真不容易,kindeditor编辑器很棒,兼容各种浏览器,是web开发者不错的选择。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。