`

UEditor(四)——表情包

阅读更多

UEditor的表情包简单实用,用起来也很方便,我这里主要记录一下碰到的一些问题。

1、本地化:这个问题以前有写过,可以参考“UEditor(二):表情包和列表的本地化”。

 

2、选了表情之后不显示:不知道大家有没有碰到,反正我这里是碰到了。UEditor默认的表情包有7个:

推荐(jx2)、baby猫(babycat)、BOBO(bobo)、泡泡(face)、绿豆蛙(ldw)、兔斯基(tsj)、有啊(youa)。

这七个除了bobo其他的选完之后都能在页面上显示出来,唯独bobo显示不出来预览也预览不出来。用F12查看的时候,发现是名称不对,应该显示B_0001.gif,可我的项目下对应目录只有b_0001.gif。让我不可思议的问题不是这个目录,而是:这个表情包我是从官网下的,处理用的js文件也是官网下的,其他的能显示出来为什么这个偏偏不同,百度不可能犯这么低级的错误。

当然解决办法很简单,将名称改正确就好啦。

不过我个人更倾向于疑问的解决办法,有时间了一定要琢磨下它这个表情包到底是什么弄的,没准还可以弄些自己的表情包,酷酷酷

 

3、表情在电脑端显示正常,在手机浏览器中被拉伸了

页面上显示的代码很简单:<img src="" _src=""/>,电脑端和手机端代码都如此,电脑端显示正常手机端被拉伸了,还失真,很难看。没找到原因,就是在img上加了style来限制它的宽高,保证在手机上能正常显示。

修改代码如下:

ueditor.all.js的function unhtmlData(imgCi) {方法:

var img_src = ci.src;
var widthStyle = "";
if(img_src.indexOf("http://")!=-1 || img_src.indexOf("https://")!=-1){//表情符号
       var width = getImgWidth(img_src);
       widthStyle="style=\"width:"+width+"px;height:"+width+"px;\"";
}else{
        img_src = formatImgSrc(img_src);
}

使用表情包返回的图片路径都带有http,所以使用这个来判断是表情还是图片上传,若是图片上传根据分类限制大小:

/**
 * 该方法根据表情包所在文件夹分类返回图片的粗略大小以解决表情在手机上出现拉伸的问题
 * **/
function getImgWidth(img_src){
	var width = 0;
	var bbb = img_src.substr(img_src.lastIndexOf('/', img_src.lastIndexOf('/') - 1) + 1);
	var emotion = bbb.substr(0,bbb.indexOf("/"));//表情包文件夹
	switch(emotion){
		case "babycat"://baby猫
		case "bobo"://BOBO(大部分是50x50,少数为其他大小)
		case "ldw"://绿豆蛙
		case "tsj"://兔斯基
			width=50;break
		case "face"://泡泡 表情
			width=25;break;
		case "youa"://有啊
			width=60;break;
		case "jx2"://推荐
			var ddd = bbb.substr(bbb.indexOf("/")+3,4);//名称序号
			ddd = parseInt(ddd);
			//兔斯基、绿豆蛙、bobo、baby猫
			if(ddd<=56){width=50;
			}else if(ddd>=71){//有啊
				width=60;
			}else{//泡泡表情
				width=25;
			}
			break;
	}
	return width;
}

按道理应该根据图片来获取图片的大小,但是图片加载需要时间而拼接html明显比加载图片快,等着图片加载完再显示图片明显不太好,所以这里使用粗略赋值。

如代码所示,babaycat、ldw和tsj这三类图片都是50*50,bobo大部分是50*50有少数是其他的尺寸这里默认给50,而face都是25*25,youa都是60*60。推荐里边有以上的各种类,根据命名规则进行赋值:0-56是兔斯基、绿豆蛙、bobo、baby猫,71以后是有啊,其他的是泡泡表情。

如此之后,就可以简单获取图片大小。之后再使用style拼接width和height,即

var width = getImgWidth(img_src);
widthStyle="style=\"width:"+width+"px;height:"+width+"px;\"";

str = '<img '+widthStyle+' src="' + img_src + '" ' + (ci._src ? ' _src="' + ci._src + '" ' : '') 。。。

(上下文环境可以看前一篇的末尾哈,上一篇贴过了这一篇就不贴了)

添加这些之后,手机预览时还是会被拉伸,就好像没添加一样,通过F12查看会发现,根本没有添加的style属性,而alert出来的测试数据却有。

这是因为style被UEditor过滤掉了,修改的方法吧网上一搜一大堆,但是对我来说都没有用,最后就修改了一个地方:

找到ueditor.config.js的whitList----》img,在其中添加上style,即:img:    ['style','src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex'],

这个是将style添加到img的白名单里边,这样子凡是在img中的就不会被过滤掉了。这比去后续删除过滤style的代码更有效。

 

祝大家好运!

分享到:
评论

相关推荐

    ueditor images表情包

    ueditor images表情包 解压后内容放在 ueditor/dialogs下的 emotion文件夹下的images表情文件夹即可

    UEditor1.4.2

    - **表情与特殊符号**:提供丰富的表情库和特殊字符,满足多样化的表达需求。 - **实时预览**:所见即所得的编辑模式,让用户在编辑过程中能即时看到最终效果。 3. **API与插件开发** - **API接口**:UEditor ...

    百度编辑器ueditor本地表情包

    【百度编辑器ueditor本地表情包】是一款专为富文本编辑器——ueditor设计的扩展功能,它使得用户在编辑内容时可以方便地插入各种表情符号,增强文章的表现力和趣味性。ueditor是由百度公司开发的一款开源的Web在线富...

    ueditor所需jar包

    在Java开发环境中,Ueditor通常以jar包的形式被引入到项目中,以便与后端服务器进行数据交互。下面将详细阐述ueditor所需jar包的使用、配置以及部署过程。 1. **Ueditor的基本功能** - **文本编辑**:支持多种文本...

    ueditor静态资源包

    《ueditor静态资源包详解与应用》 ueditor是一款广泛应用于网页端的开源富文本编辑器,它提供了丰富的编辑功能,使得用户可以在网页上进行文本、图片、视频等多种媒体的编辑操作,极大地提升了网页内容创作的便捷性...

    ueditor utf-8 繁体中文语言包

    **ueditor UTF-8 繁体中文语言包详解** `ueditor` 是一款非常流行的开源富文本编辑器,广泛应用于网页内容编辑、博客、论坛等场景。它提供了丰富的编辑功能,如字体调整、颜色设置、图片上传、链接插入等,使得用户...

    vue-ueditor-wrap UEditor资源包

    在Vue项目中引入Vue-UEditor-Wrap,你需要先安装这个npm包,通常使用以下命令: ```bash npm install vue-ueditor-wrap --save ``` 或者,如果你的项目使用了Yarn: ```bash yarn add vue-ueditor-wrap ``` 安装...

    百度ueditor修改版jar包

    给大家分享个ueditor用到的升级版jar包。最近项目集群部署需要将上传的文件都放在文件服务器,正常的上传、下载都已经通过程序处理,但是发现凡是用富文本控件ueditor中上传的图片都无法处理,目前该控件仅支持上传...

    UEditor1.2.4-jsp版配置(上传图片+附件+表情本地化)

    本文将详细介绍如何配置 UEditor 1.2.4 实现图片上传、附件上传以及表情本地化的功能。 首先,启动 UEditor。确保项目目录结构正确,并在 HTML 页面中引入 UEditor 的核心文件:`editor_config.js`、`editor.js` 和...

    UEditor富文本编辑器实现图片/视频/表情包/文字发布

    使用百度UEditor富文本编辑器实现发布新闻/通知公告/编写个人任务等在线编辑功能。解决了图片的发布,视频的发布以及图片和视频存储路径的自定义路径。

    UEditor1.1.2源码及jar包

    这个源码及jar包的集合对于开发者来说是一份宝贵的资源,尤其是对于那些想要深入理解UEditor工作原理,或者希望对其进行定制化开发的人来说。 首先,我们来关注一下"ueditor-1.1.2.jar",这是UEditor的核心库文件,...

    Ueditor1.4.3.rar

    Ueditor1.4.3,源码已改动,可以直接使用,支持带样式的文字、图片、在线视频、地图、表情包等

    ueditor相关jar包

    百度富文本相关jar包; UEditor是由百度web前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。基于MIT开源协议,所有源代码在协议允许范围内可自由修改和使用。百度UEditor的...

    ueditor-1.1.2_ueditor-1.1.2_ueditor_ueditor:jar:1.1.2_ueditor-1.

    其Java版本——ueditor-1.1.2,为Java开发者提供了一个便捷的工具,用于集成到他们的Web应用中,实现丰富的文本编辑和格式化功能。本文将深入探讨ueditor-1.1.2 JAR包及其源码,帮助开发者更好地理解和利用这个编辑...

    UEditor(五)——解决上传图片时报错:未找到上传数据

    这些脚本通常在UEditor的下载包内提供,需要根据你的后端语言进行相应的修改和部署。 2. **URL路径设置**:在UEditor的配置文件中(通常是`config.js`),需要正确设置上传接口的URL。确保这个URL能够被服务器解析...

    使用vue-ueditor-wrap组件时导入的百度ueditor资源包

    使用vue-ueditor-wrap组件时导入的百度ueditor资源包,如果要恢复百度ueditor图片组件的功能,就去UEditor/dialogs/image/image.html 里面取消屏蔽23,24,25行代码,如果需要查看组件使用放法,请去我主页查看:uve 使用...

    百度ueditor完整包

    这个"百度ueditor完整包"包含了所有必要的组件和资源,使得用户能够在自己的网站上快速集成并使用这款编辑器。 UEditor的主要特点在于它的易用性和灵活性。它支持多种格式的文字输入,如HTML、Markdown等,同时提供...

    Reactjs use ueditor

    react 中使用富文本框,ueditor中包含了JqueryJs 解决react中上传图片的问题。 ueditor文件夹是压缩过的ueditor,index.html是如何引用富文本的js。 componentDidMount(){ let config = {elementPathEnabled: ...

    ueditor-1.1.3jar包

    ueditor-1.1.3解决缺少jar包文本编译工具不能使用的问题

    ueditor1.4.3.zip

    《UEditor 1.4.3:打造极致的富文本编辑体验》 UEditor,一个由百度Web前端研发部倾力打造的富文本web编辑器,以其轻量化、高度可定制化以及用户友好的特性,成为了众多网站内容管理系统的首选。这款编辑器遵循MIT...

Global site tag (gtag.js) - Google Analytics