当前位置:阳诡子 > 建站 > 正文

Kindeditor修改video标签播放MP4

时间:2020-11-28  来源:  作者:

前言

在为ECMS更换了kindeditor-4.1.11编辑器后,在插入视频时默认是mebed标签,修改完之后,插入视频时如果是MP4格式则自动转为video标签!
由于是识别判断的,其实本质上只是改动了mebed标签!
知识有限,代码不太规范,当变换成video标签之后,并没有</video>结束,不过可以正常使用!

一、上传限制

打开php/upload_json.php,将:

'media' => array('swf', 'flv',

改为:

'media' => array('swf', 'flv','mp4',

再将:

$max_size = 1000000;

改为:

$max_size = 1000000000;

二、文件写入

kindeditor-4.1.11目录下新建attached目录,并赋予写入权限,可通过FTP软件设置!

三、增加标签

接下来就是大改造了,打开kindeditor-4.1.11/kindeditor-all.js点此下载修改后的完整文件),将:

1、查找

_SINGLE_TAG_MAP = 

在后段加入video:

embed,video'),

2、将

'flash', 'media',

改成

'flash','video', 'media',

3、在

embed : ['id', 'class', 

的下方增加:

video : ['src','controls','width','height'],

4、在

if (/\.(rm|rmvb)(\?|$)/i.test(src)) {
return 'audio/x-pn-realaudio-plugin';
}

的下方增加:

if (/\.(mp3)(\?|$)/i.test(src)) {
return 'audio/mpeg';
}
if (/\.(mp4)(\?|$)/i.test(src)) {
return '"video/mp4';
}

5、在

if (/flash/i.test(type)) {
return 'ke-flash';
}

的下方增加:

if (/audio|mp4/i.test(type)) {
return 'ke-video';
}

6、在

function _mediaEmbed(attrs) {

的上方增加:

function _videoEmbed(attrs) {
var html = '<video controls="controls"  ';
_each(attrs, function(key, val) {
html += key + '="' + val + '" ';
});
html += '/>';
return html;
}

7、在

if (/\D/.test(width)) {  

的上方增加:

if(type=="audio/mpeg" || type=="video/mp4"){
srcTag = _videoEmbed(attrs);
}else{
srcTag = _mediaEmbed(attrs);
}

8、在

createlink : function(url, type) {

的上方增加:

insertvideo : function(url, width, height) {
var html = '<video src="' + _escape(url) + '" data-ke-src="' + _escape(url) + '" ';
if (width) {
html += 'width="' + _escape(width) + '" ';
}
if (height) {
html += 'height="' + _escape(height) + '" ';
}
html += '/>';
return this.inserthtml(html);
},

9、在

'img.ke-anchor {',

的上方增加:

'img.ke-video {',
'border:1px solid #AAA;',
'background-image:url(' + themesPath + 'common/media.gif);',
'background-position:center center;',
'background-repeat:no-repeat;',
'width:100px;',
'height:100px;',
'}',

10、在

self.plugin.getSelectedFlash = function() {  

的上方增加:

self.plugin.getSelectedVideo = function() {
return _getImageFromRange(self.edit.cmd.range, function(img) {
return img[0].className == 'ke-video';
});
};

11、将

_each('link,image,flash,media,anchor

改成:

_each('link,image,flash,media,anchor,video

12、在

.replace(/<img[^>]*class="?ke-anchor

的上方增加:

.replace(/<img[^>]*class="?ke-video"?[^>]*>/ig, function(full) {
var imgAttrs = _getAttrList(full);
var styles = _getCssList(imgAttrs.style || '');
var attrs = _mediaAttrs(imgAttrs['data-ke-tag']);
var width = _undef(styles.width, '');
var height = _undef(styles.height, '');
if (/px/i.test(width)) {
width = _removeUnit(width);}
if (/px/i.test(height)) {
height = _removeUnit(height);}
attrs.width = _undef(imgAttrs.width, width);
attrs.height = _undef(imgAttrs.height, height);
return _videoEmbed(attrs);})

13、在

.replace(/<a[^>]*name="(

的上方增加:

.replace(/<video[^>]*[^>]*>(?:<\/video>)?/ig, function(full) {
var attrs = _getAttrList(full);
attrs.src = _undef(attrs.src, '');
attrs.width = _undef(attrs.width, 0);
attrs.height = _undef(attrs.height, 0);
return _mediaImg(self.themesPath + 'common/blank.gif', attrs);})

四、更新缓存

要确认已更新缓存才能出效果!

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
CopyRight 2008-2022, 529600.Net, Inc.All Rights Reserved
粤ICP备2022094815号-1  网安备案粤公网安备 44178102001207号