编辑器的部署与配置
kindeditor文本编辑器
![](https://images2017.cnblogs.com/blog/1157596/201709/1157596-20170912220757750-855503061.png)
3.引用服务
4.页面使用
<script src="~/Content/kindeditor-4.1.10/kindeditor.js"></script>
<script src="~/Content/kindeditor-4.1.10/lang/zh_CN.js"></script>
<script src="~/Content/kindeditor-4.1.10/plugins/code/prettify.js"></script>
KindEditor.ready(function(K) {
editor11 = K.create('#txtAppear', {
cssPath: '../Content/kindeditor-4.1.10/plugins/code/prettify.css', //路径要正确
uploadJson: '../Content/kindeditor-4.1.10/asp.net/upload_json.ashx',
fileManagerJson: '../Content/kindeditor-4.1.10/asp.net/file_manager_json.ashx',
allowFileManager: true,
afterBlur: function() {
this.sync();
}, //注意这里(异步提交时需要同步)
afterCreate: function() {
var self = this;
self.sync(); //把富文本编辑器的内容放到 文本域里面去。
}
});
<textarea rows="4" id="txtAppear" name="txtAppear" class="easyui-validatebox" data-options="required:true,validType:'length[1,4000]'" invalidmessage="最大长度不能超过4000" ></textarea>
5.页面传值
js取值:
var txtAppear1 = editor11.html();//取出文本编辑器内容
js赋值:
editor11.insertHtml(appear); //赋值给编辑器
6.字符转换问题
页面提交数据前 进行数据转换 js里encodeURIComponent() 编码函数
encodeURIComponent(txtAppear1)
控制类中解码 HttpUtility.UrlDecode()
bll类中取出数据:需编码HttpUtility.UrlEncode(),然后,替换 appea.Replace("+", "%20");
页面返回数据,解码:decodeURIComponent();
RL中的空格有时候被编码成%20,有时候被编码成加号+,曾经迷糊过一段时间,后来查了下资料才搞明白。
一个URL的基本组成部分包括协议(scheme),域名,端口号,路径和查询字符串(路径参数和锚点标记就暂不考虑了)。路径和查询字符串之间用问号?分离。例如http://www.example.com/index?param=1,路径为index,查询字符串(Query String)为param=1。URL中关于空格的编码正是与空格所在位置相关:空格被编码成加号+的情况只会在查询字符串部分出现,而被编码成%20则可以出现在路径和查询字符串中。
造成这种混乱局面的原因在于:W3C标准规定,当Content-Type为application/x-www-form-urlencoded时,URL中查询参数名和参数值中空格要用加号+替代,所以几乎所有使用该规范的浏览器在表单提交后,URL查询参数中空格都会被编成加号+。而在另一份规范(RFC 2396,定义URI)里, URI里的保留字符都需转义成%HH格式(Section 3.4 Query Component),因此空格会被编码成%20,加号+本身也作为保留字而被编成%2B,对于某些遵循RFC 2396标准的应用来说,它可能不接受查询字符串中出现加号+,认为它是非法字符。所以一个安全的举措是URL中统一使用%20来编码空格字符。
Java中的URLEncoder本意是用来把字符串编码成application/x-www-form-urlencoded MIME格式字符串,也就是说仅仅适用于URL中的查询字符串部分,但是URLEncoder经常被用来对URL的其他部分编码,它的encode方法会把空格编成加号+,与之对应的是,URLDecoder的decode方法会把加号+和%20都解码为空格,这种违反直觉的做法造成了当初我对空格URL编码问题的困扰。因此后来我的做法都是,在调用URLEncoder.encode对URL进行编码后(所有加号+已被编码成%2B),再调用replaceAll(“\\+”, “%20″),将所有加号+替换为%20。