SP.NET取不到kindeditor 编辑器数据,直接取得textarea的value也无法取到
用ASP.NET做一个内容管理系统,很简单的一个项目,应该没有什么问题,但是在做到文本编辑器的时候确实把我给难住了,我花了好长时间在网上搜资料,最终选用了KindEditor文本编辑器,这个比FCKEditor文本编辑器轻巧,而且也不用很进行很麻烦的参数配置,直接从官网上下载文件包,解压一下,里面有asp,asp.net,php,jsp的应用实例,用过之后感觉确定蛮好的,很轻巧也很灵活,可以说完全满足了我的需求,本来以为万事大吉了,可是在获取value值的时候,突然间发现在后台取不到textarea的值,纠结很长时间最终解决,下面是摘自官网的一段说明文档:
KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要将HTML数据设置到原来的textarea,editor.sync()函数会完成这个动作。
KindEditor在默认情况下自动寻找textarea所属的form元素,找到form后onsubmit事件里添加editor.sync()函数,所以用form方式提交数据,不需要手动执行editor.sync()函数。
然后我又仔细看了看附带的实例,终于找到了问题所在,以下代码基本上就是官方给出的源码,就是增加了一个事件,然后一切搞定,终于可以在后台通过this.txtWb.value获取到文本编辑器的值了
<script type="text/javascript" language="javascript">
KindEditor.ready(function (K) {
var editor1=K.create('#NewsContent', {
cssPath: 'kindeditor/plugins/code/prettify.css',
uploadJson: '../../Handler/Upload.ashx',
fileManagerJson: '../../Handler/FileManager.ashx',
allowFileManager: true,
afterCreate: function () {
var self=this;
K.ctrl(document, 13, function () {
self.sync();
K('form[name=formCreateDocument]')[0].submit();
});
K.ctrl(self.edit.doc, 13, function () {
self.sync();
K('form[name=formCreateDocument]')[0].submit();
});
$('#lbtnSubmit').click(function () {
self.sync();
});
}
});
prettyPrint();
});
</script>
、kindeditor安装
下载编辑器kindeditor最新版本
解压文件,然后将所有文件上传到工程目录下,具体目录视不同框架而定
在html页面引入以下js文件,路径需要修改为自己的路径,保证文件能正常加载
<script charset="utf-8" src="/editor/kindeditor.js"></script> <script charset="utf-8" src="/editor/lang/zh-CN.js"></script>
在页面需要的部分加入textarea控件,注意:id需要唯一
<textarea id="editor_id" name="content" style="width:700px;height:300px;"> 这里写入内容 </textarea>
最后需要增加以下js代码,用于初始化控件
<script> //简单模式初始化 var editor; var options={}; KindEditor.ready(function(K) { editor=K.create('#editor_id', options); }); </script>
注意:
第一个参数为css选择器,一次只能初始化一个textarea元素。
options为编辑器的配置项,具体参数请参考官网
安装过程非常简单,首先在Gemfile
gem 'rails_kindeditor' bundle install
然后执行命令生成相关文件
rails g rails_kindeditor:install
修改配置文件参数config/initializers/rails_kindeditor.rb,例如文件上传路径,上传文件类型等
RailsKindeditor.setup do |config| # Specify the subfolders in public directory. # You can customize it , eg: config.upload_dir='this/is/my/folder' config.upload_dir='uploads' # Allowed file types for upload. config.upload_image_ext=%w[gif jpg jpeg png bmp] config.upload_flash_ext=%w[swf flv] config.upload_media_ext=%w[swf flv mp3 wav wma wmv mid avi mpg asf rm rmvb] config.upload_file_ext=%w[doc docx xls xlsx ppt htm html txt zip rar gz bz2] # Porcess upload image size # eg: 1600x1600=> 800x800 # 1600x800=> 800x400 # 400x400=> 400x400 # No Change # config.image_resize_to_limit=[800, 800] # if you have config in your rails application like this: # /config/enviroments/production.rb # # config.action_controller.asset_host="http://asset.example.com" # # config.assets.prefix="assets_prefx" # then you should: # # config.asset_url_prefix="http://asset.example.com/assets_prefx/" if Rails.env.production? end
在view中嵌入编辑器
<%=kindeditor_tag :content,"这里是默认内容" %>
然后编辑器就可以使用,如图:
二、填坑
当表单提交时会发现,提交的数据并没有获取到文本框中的内容,这是因为输入数据时并不能实时使textarea获取到文本内容,那么我们就需要在提交表单时手动赋值
var editor=KindEditor.instances[0]; editor.sync();
注意,此处KindEditor.instances获取到的是一个文本框数组,根据自己需要取值
rails生产环境都会使用production配置启动,首先需要编译资源文件
RAILS_ENV=production rake assets:precompile
但是当编译完之后,会发现KindEditor的样式文件并没有获取到,这是因为KindEditor需要单独编译
rails kindeditor:assets
这时public/assets下就出现了KindEditor需要的资源文件,KindEditor也可以正常使用。
于可视化布局的实现,其实,目前有两种方式可以实现可视化布局的方式。一种是在网上选择一些免费的可视化布局软件,另一种是直接使用在线可视化拖拽编辑器实现。不管用户选择哪种的方式实现可视化布局的话,他们的作用都是一样的。目前可视化拖拽编辑器可以说是种类繁多, 特别是国外, 开源的商业的, 各种版本, 不一而足,接下来小编就简单介绍几个常见的免费、开源、在线的可视化拖拽编辑器。
一、可视化拖拽编辑器——KindEditor
KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。KindEditor使用JavaScript编写,可以无缝的于Java、.NET、PHP、ASP等程序接合。
二、可视化拖拽编辑器——Smartbi
Smartbi是广州思迈特软件开发的一款软件,目前个人版是永久免费使用的。使用Smartbi的自助仪表盘功能,让你的工作汇报增添精彩。数据可视化不仅丰富且美观,更重要是操作简洁,使用方便。适应多变的分析场景。大大的提高了业务部门用数效率,减少科技部门的人员投入。当然,Smartbi还提供了移动端HTML访问 BI 的功能,方便使用手机来查看 BI 应用。也可以通过集成到第三方报表查看,例如微信,钉钉等app。
图:Smartbi集成使用效果
三、可视化拖拽编辑器——VvvebJs
VvvebJs是一个开源的网页拖拽自动生成的JavaScript库,你可以以简单拖拽的方式生成自己需要的网页样式,内置jquery和Bootstrap,你可以拖拽相关的组件进行网页的构建,非常的方便,而且可以实时修改代码,功能丰富,使用简单,界面友好,特别适合一些专注于展示的网页设计。
四、可视化拖拽编辑器——UEditor
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。特别要说的是,头条号后台发布文章的编辑器就是用的UEditor!
五、可视化拖拽编辑器——Elegant Builder
在Elegant Themes Builder是一个插件,它为方便您编辑页面上的内容提供了一些不可思议的工具。该插件基于一个可视化的的画布,您可以添加,排列你的页面上的大量内容。当你新建一篇文章或页面时此插件显示在正常的文本编辑器下方。该插件允许您快速创建列,滑块,标签,按钮,切换,箱子等等。
以上就是我为大家关于各种可视化拖拽编辑器的推荐。希望对准备入门的新手有所帮助,能够选择合适自己的可视化编辑器。现在备受市场认可的软件其实有很多,选择时必须要结合实际的情况。一般的情况下,选择市面上口碑较好的软件,可能比较不会踩到雷。据我所知,国内数据可视化产品口碑较好的就是Smartbi了。简单方便易上手,可以去试试。
*请认真填写需求信息,我们会在24小时内与您取得联系。