kindeditor未定义,kindeditor asp 怎么使用?。跟着官方做老是报kindeditor未定义.求大神。在线等
kindeditor未定义,kindeditor asp 怎么使用?。跟着官方做老是报kindeditor未定义.求大神。在线等详细介绍
.ke-icon-audio { background-position: 0px -528px; width: 16px; height: 16px; } 本文目录一览: kindeditor asp 怎么使用?。跟着官方做老是报kindeditor未定义.求大神。在线等
4.0开始只有一个KindEditor全局变量,K改成KindEditor就可以。或者上面放 window.K = KindEditor;
asp运用在线编辑器总是跳出KindEditor未定义的错误
那就定义一下啊,kindeditor相关教程会告诉你怎么定义的
kindeditor.js没引入吧
kindeditor.create怎么自定义
流程比较简单,主要有以下步骤:
注册插件(按钮、Lang、htmlTags、插件脚本) 基于media插件代码修改 注册插件
首先,全局配置kindeditor参数:
KindEditor.lang({ audio : 'MP3' }); KindEditor.options.htmlTags['audio'] = ['src','controls','autoplay','type']; KindEditor.options.htmlTags['source'] = ['src','controls','autoplay','type']; 在初始化编辑器的地方,配置按钮列表items参数,把
'audio'
放在合适的位置:
KindEditor.ready(function(K) { editor = K.create('#info,#spread_info', { //其他配置省略... items : [ 'source', '', 'undo', 'redo', '', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste', 'plainpaste', 'wordpaste', '', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', 'superscript', 'clearhtml', 'quickformat', 'selectall', '', 'fullscreen', '/', 'formatblock', 'fontname', 'fontsize', '', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '', 'image', 'multiimage', '' ,'table', 'hr', 'emoticons', 'baidumap', 'pagebreak', 'anchor', 'link', 'unlink', '', 'about','audio' ] }); 为了便于阅读,我把audio按钮放在最后,在 "帮助" 标签的后面。
为了让按钮能够显示,我们还需要指定一下css样式:
这里我图方便,直接用了自带的音视频按钮的图标,自定义图标请手动指定 background 样式属性。
最后,创建脚本
kindeditor/plugins/audio/audio.js audio目录手动建立。
我们把
plugins/media/media.js 中的代码复制到audio.js里,然后着手修改。
修改media插件
主要是去掉一些无用的属性,如 宽、高、自动播放等,并修改插入代码的部分,手动构建 "audio" 标签的html代码。
/** * Created by admin on 15-5-6. */ KindEditor.plugin('audio', function(K) { var self = this, name = 'audio', lang = self.lang(name + '.'), allowMediaUpload = K.undef(self.allowMediaUpload, true), allowFileManager = K.undef(self.allowFileManager, false), formatUploadUrl = K.undef(self.formatUploadUrl, true), uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'); self.plugin.media = { edit : function() { var html = [ '
', '
', '
', '
', '
' ].join(''); var dialog = self.createDialog({ name : name, width : 450, height : 230, title : self.lang(name), body : html, yesBtn : { name : self.lang('yes'), click : function(e) { var url = K.trim(urlBox.val()), width = widthBox.val(), height = heightBox.val(); if (url == '' K.invalidUrl(url)) { alert(self.lang('invalidUrl')); urlBox[0].focus(); return; } if (!/^\d*$/.test(width)) { alert(self.lang('invalidWidth')); widthBox[0].focus(); return; } if (!/^\d*$/.test(height)) { alert(self.lang('invalidHeight')); heightBox[0].focus(); return; } var html = '
'; self.insertHtml(html).hideDialog().focus(); } } }), div = dialog.div, urlBox = K('[name="url"]', div), viewServerBtn = K('[name="viewServer"]', div), widthBox = K('[name="width"]', div), heightBox = K('[name="height"]', div), autostartBox = K('[name="autostart"]', div); urlBox.val(''); if (allowMediaUpload) { var uploadbutton = K.uploadbutton({ button : K('.ke-upload-button', div)[0], fieldName : 'imgFile', url : K.addParam(uploadJson, 'dir=audio'), afterUpload : function(data) { dialog.hideLoading(); if (data.error === 0) { var url = data.url; if (formatUploadUrl) { url = K.formatUrl(url, 'absolute'); } urlBox.val(url); if (self.afterUpload) { self.afterUpload.call(self, url); } alert(self.lang('uploadSuccess')); } else { alert(data.message); } }, afterError : function(html) { dialog.hideLoading(); self.errorDialog(html); } }); uploadbutton.fileBox.change(function(e) { dialog.showLoading(self.lang('uploadLoading')); uploadbutton.submit(); }); } else { K('.ke-upload-button', div).hide(); } if (allowFileManager) { viewServerBtn.click(function(e) { self.loadPlugin('filemanager', function() { self.plugin.filemanagerDialog({ viewType : 'LIST', dirName : 'media', clickFn : function(url, title) { if (self.dialogs.length > 1) { K('[name="url"]', div).val(url); self.hideDialog(); } } }); }); }); } else { viewServerBtn.hide(); } var img = self.plugin.getSelectedMedia(); if (img) { var attrs = K.mediaAttrs(img.attr('data-ke-tag')); urlBox.val(attrs.src); widthBox.val(K.removeUnit(img.css('width')) attrs.width 0); heightBox.val(K.removeUnit(img.css('height')) attrs.height 0); autostartBox[0].checked = (attrs.autostart === 'true'); } urlBox[0].focus(); urlBox[0].select(); }, 'delete' : function() { self.plugin.getSelectedMedia().remove(); } }; self.clickToolbar(name, self.plugin.media.edit); }); 至此,整个插件基本结束。
需要注意的是,上传文件用的是通用的配置uploadJson参数,但会在上传的时候自动添加一个get参数 "dir=audio" ,以便后台识别:
url : K.addParam(uploadJson, 'dir=audio'),
kindeditor一直显示上传,中求助
KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。
软件介绍
KindEditor使用JavaScript编写,可以无缝的于Java、.NET、PHP、ASP等程序接合。 KindEditor非常适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用,2006年7月首次发布2.0以来,KindEditor依靠出色的用户体验和领先的技术不断扩大编辑器市场占有率,目前在国内已经成为最受欢迎的编辑器之一。
主要特点
1. 体积小,加载速度快,但功能十分丰富。2. 内置自定义range,完美地支持span标记。
3. 基于插件的方式设计,所有功能都是插件,增加自定义和扩展功能非常简单。
4. 修改编辑器风格很容易,只需修改一个CSS文件。
5. 支持大部分主流浏览器,比如IE、Firefox、Safari、Chrome、Opera。
如何添加带文本编辑器的html文本框
使用文本编辑器的插件,有很多。
http://ueditor.baidu.com/website/onlinedemo.html
http://ckeditor.com/
1、首先在电脑桌面上,新建并打开一个记事本文件。
2、这里要用到
标签,这个标签包含了表单的一些元素,这里要用到
元素,具体格式如下图。
3、其中红框内 type="text" 意思是文本框,其中的text可以换成其他的,name="firstname"是这个文本框的名字。
4、然后点击保存,改变记事本文件后缀为html,看看网页显示效果。
5、接着来做一个最常用的登陆框,首先做出用户名+文本框;密码+文本框,以下是代码。
6、最后保存,看看网页显示效果,就完成了。
php集成kindeditor时候,动态加载的上传图片按钮不能使用怎么办?不能绑定点击事件
您好,这样的:
第一步:在模板html页面引入如下文件:
路径根据自己的项目不同,正确引入即可,uploadJson :
"/Home/Common/upload",
uploadJson后面的就是编辑器上传图片的处理地址,可以根据自己的自行配置
这里交由Home分组的Common控制器的upload方法处理图片上传
第二步:自定义上传处理函数
function upload(){
header("Content-Type:text/html;charset=utf-8");
import('ORG.Net.UploadFile');
$upload = new UploadFile();
$upload->maxSize = 3145728;
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');
$upload->autoSub=true;
$upload->subType='date';
$upload->dateFormat='Ym';
$upload->savePath = './upload/article/';
if(!$upload->upload()){
$error['error']=1;
$error['message']=$upload->getErrorMsg();
exit(json_encode($error));
}
$info=$upload->getUploadFileInfo();
/*图片水印处理
import('ORG.Util.Image');
$image = new Image();
$image->water($upload->savePath.$info[0]['savename'],'./data/water.png');*/
$data=array(
'url'=>str_replace('./','/',$upload->savePath).$info[0]['savename'],
'error'=>0
);
exit(json_encode($data));
}
这里使用ThinkPHP的上传类处理图片上传,也可以自己写,唯一需要注意的就是返回的格式
查看了下官方的文档:
上传正确返回这种JSON串
{
"error" : 0,
"url" :
"http://www.example.com/path/to/file.ext"
}
上传失败返回这种JSON串
{
"error" : 1,
"message" :
"错误信息"
}
特别需要注意的一点就是返回的error一定要用整数1或是0,别用字符串'1'或'0'
原因是plugins/image/image.js的结果判断是
恒等于 ===
(当初自己就是因为PHP端返回的是字符串形式的'0'不等于整数的0导致上传之后总是弹窗报错)。
Kindeditor编辑器如何设置不过滤HTML标签或者某些指定的标签
我想很多朋友在使用Kindeditor编辑器的时候都会遇到这样一个问题,如:给A标签加上title属性过后,浏览的时候,却神奇般地发现title属性没有了。再次切换html源代码的时候,返现编辑器将title属性给删掉了。追究其根本原因主要是kindeditor设置了标签和属性的默认过滤机制。
一、如何控制kindeditor编辑器不过滤任何标签?
二、如何设置Kindeditor编辑器只保留某些标签和属性?
面对这样一个问题,我们可以通过设置其htmlTags属性来得以实现。htmlTags指定要保留的HTML标记和属性。Object的key为HTML标签名,value为HTML属性数组,开始的属性表示style属性。
定义每个标签的保留属性,记住形如这样的类型font-size'主要是表示其属于标签内的style属性内的样式。形如’src'这一类的,就表示标签的直接属性。
综上所述,通过以上两种方式即可实现kindeditor编辑器的标签和属性过滤效果。
kindeditor 有enter事件嘛
CM_MOUSEENTERCM_MOUSELEAVE必须自己继承控件,因为这不是Windows的标准消息。在Form中声明两个函数: procedure CMMouseEnter(var msg:tmessage);message CM_MOUSEENTER; procedure CMMouseLeave(var msg:tmessage);message CM_MOUSELEAVE;实现部分如下:procedure Form.CMMouseEnter(var msg:tmessage);var obj:TObject;begin obj:=Tobject(msg.lParam);//鼠标所在的控件 if obj<>nil then begin //确定控件的类型 //你的处理 end;end;procedure Form.CMMouseLeave(var msg:tmessage);var obj:TObject;begin obj:=Tobject(msg.lParam);//鼠标所在的控件 if obj<>nil then begin //确定控件的类型 //你的处理 end;end;
没有,不过你可以自己定义事件后 调用kindeditor 的方法也行
java在线编辑office文档插件,收费的不要
之前在国外,一直在用dropbox,觉得很不错。后来回国了,一直没找到相似的产品,觉得挺失望的。前阵子朋友推荐了一个云盘,叫团队文档库,貌似是中科院的产品,虽然没有dropbox好用,但觉着还不错(团队文档库客户端下载)。
http://www.onlinedown.net/soft/90267.htm
这个我上半年用过,是开源的。
用什么样的Web编辑器,eWebEditor,kindeditor还是FCKEditor
个人选择的 FCKEditor;
kindeditor 对表格支持的不好,eWebEditor没接触过。
我接触的第一个Web编辑器是eWebEditor。它是国产的,在IE7及以下的版本中效果是非常不错的,不兼容IE8及火狐,而且使用不当就会留下上传漏洞的隐患。这样的编辑器,还是不要用了(很想支持国产,但是...)
放弃eWebEditor后,我选择了kindeditor。它是老外开发的,能兼容目前所有版本的浏览器,纯静态(文件上传需要自
己实现,小问题)。但是它不支持Word表格的复制(就是不能直接从Word上复制表格到编辑器中),而且会经常出现图文丢失的现象,郁闷,我还是不用了(老外的东西也不一定好,...)
前段时间接触了FCKEditor,发现这个编辑器相当不错,查了一下,网上大家对它的评价超高(貌似淘宝也是用的这个编
辑器)。它也是老外开发的,能兼容目前所有版本的浏览器,对Word的支持非常好,复制表格没有一点变形。到目前为
止,我已经在两个项目中使用了这个编辑器,一个是基于PHP的订餐系统,另外一个是基于ASP的公司网站,FCKEditor对PHP,ASP以及ASP.NET的支持都很好,使用起来非常方便。
编辑器的安全问题一直是一个令很多人头痛的问题,这主要在于文件上传上。各种编辑器默认情况下都没有对文件上传
进行身份认证(它也不可能实现一个通用的身份认证),开发者必须根据自己系统的情况加入适当的身份认证代码。另外
编辑器允许的文件上传类型也需要进行严格的限制,例如eWebEditor允许在后台修改上传文件类型,这样一旦歹徒获取后
台密码,即可轻易上传任意格式的文件。低版本的FCKEditor(好像是2.1以下的版本)默认情况下允许上传任意格式的文件。
总结一下FCKEditor的使用(以2.6.5版为例):
(1)精简,"言多必失",文件多了也是一种隐患。FCKEditor支持多种服务器脚本语言,实际使用的时候我们根本用不了那么多文件,我们要根据自己的需要对其进行精简。
对于ASP系统来说:
FCKEditor根目录,仅保留"fckeditor.asp,fckconfig.js,fckeditor.js,fckpackager.xml,fckstyles.xml,
fcktemplates.xml"这些文件以及editor目录。删除示例目录"_samples"。
"fckeditor\editor\filemanager\connectors"目录下面仅保留"asp"目录,删除其它目录和文件。
对于PHP系统来说:
FCKEditor根目录,仅保留"fckeditor.php,fckeditor_php4.php,fckeditor_php5.php,fckconfig.js,fckeditor.js,
fckpackager.xml,fckstyles.xml,fcktemplates.xml"这些文件以及editor目录。删除示例目录"_samples"。"fckeditor\editor\filemanager\connectors"目录下面仅保留"php"目录,删除其它目录和文件。
(2)修改文件上传采用的脚本程序(语言)。
默认的FCKEditor文件上传程序为asp,如果是用在asp系统中,那就不用再修改了。
如果是用在PHP系统中的话,需要做如下修改,打开fckconfig.js
找到:
var _FileBrowserLang ge = asp
var _QuickUploadLang ge = asp
改成:
var _FileBrowserLang ge = php
var _QuickUploadLang ge = php
(3)开启文件上传,修改文件上传目录。
对于ASP系统来说:
打开fckeditor\editor\filemanager\connectors\asp\config.asp
启用文件上传:
找到:
ConfigIsEnabled = false
改成:
ConfigIsEnabled = tr
设置上传存放目录:
找到:
ConfigUserFilesPath = "/admin/uppic/"
改成:
ConfigUserFilesPath = "自定义的路径"
对于PHP系统来说:
打开fckeditor/editor/filemanager/browser/default/connectors/php/config.php
启用文件上传:
找到:
$Config[Enabled] = false
改成:
$Config[Enabled] = tr
设置上传存放目录:
找到:
$Config[UserFilesPath] = /userfiles/
改成:
$Config[UserFilesPath] = 自定义的路径
(4)修改上传文件命名方式。
FCKEditor上传文件,文件名采用原文件名,如果想采用自定义的文件命名方式(比如,随即名称),可以修改如下地
方:
对于ASP系统来说:
打开fckeditor\sample\edit\editor\filemanager\connectors\asp\commands.asp
找到:
sFileName = SanitizeFileName( sFileName )
将该句改为自定义的文件命名格式,例如:
dim RndStr
Randomize
RndStr = Cstr(Fix(9000*rnd()+1000)) 产生一个随机数
sFileName =year(date)&month(Date)&day(Date)&hour(time)&minute(time)&second(time)&RndStr &"." &
**tension
对于PHP系统来说:
打开fckeditor\editor\editor\filemanager\connectors\php\commands.php
找到:
$sOriginalFileName = $sFileName ;
在该句前面加入:
// 初始化种子
$sstr =split(" ",microtime(),5);
$seed =$sstr[0]*10000;
// 使用种子初始化随机数发生器
srand($seed);
// 生成指定范围内的随机数
$random =rand(1000,10000);
// 合成随即的文件名
$sFileName = date("YmdHis", time()).$random.".".$**tension;
(5)FCKEditor在程序中引用方式。
对于ASP系统来说:
需要包含下面的头文件
在编辑器所在的位置添加如下代码:
<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/fckeditor/" 这个路径必须是相对于站点根目录的路径,设置错误编辑器
将无法显示
oFCKeditor.ToolbarSet="Default"
oFCKeditor.Width = "98%"
oFCKeditor.Height= "500px"
oFCKeditor.Val = "" 设置默认值
oFCKeditor.Create "shangpin_description" 编辑器的id,相当于input标签的name属性值,这里是
shangpin_description
%>
对于PHP来说:
在编辑器所在的位置添加如下代码:
<!--?php incl?("fckeditor/fckeditor.php"); // 头文件
$oFCKeditor = new FCKeditor("shangpin_description") ; // 编辑器的id,相当于input标签的
name属性值,这里是shangpin_description
$oFCKeditor->BasePath="/fckeditor/ " ; //设置FCKeditor路径
$oFCKeditor->ToolbarSet ="Default";
$oFCKeditor->Width="98%";
$oFCKeditor->Height="500px";
$oFCKeditor->Val=""; // 设置默认值
$oFCKeditor->Create();
?>
(6)获取FCKEditor中的数据。
对于服务器端脚本程序来说,将"编辑器的id"当做input标签的name属性值来获取即可,例如:
在ASP中reqst("shangpin_description"),在PHP中$_REQST["shangpin_description"]
JS中用FCKeditorAPI.GetInstance(shangpin_description).GetXHTML(tr)得到shangpin_description对应的值