Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TinyMCE和SVG

TinyMCE和SVG
EN

Stack Overflow用户
提问于 2016-06-16 06:54:44
回答 4查看 8.3K关注 0票数 7

我使用的是最新/当前的TinyMCE编辑器(<script type="text/javascript" src='https://cdn.tinymce.com/4/tinymce.min.js'></script>),它似乎无法显示<svg>。我在一个包含一些<svg>的数据库中保存了一些HTML。在TinyMCE中加载时,它不会显示。

这是一个已知的问题(我已经搜索过,但没有发现多少)?有什么解决办法吗?

EN

回答 4

Stack Overflow用户

发布于 2016-10-04 03:21:32

TinyMCE剥离空的和无效的标记。你可以通过

  1. 在每个空元素中添加“”: Svg.find(‘*’).each(函数(){ if (!$(this).html()) {$(This).text(‘this’‘);}); 这里,svg是您的jQuery包装的svg元素。
  2. 根据有效元素 *扩展svg元素参考* extended_valid_elements:"svg*、defs*、模式*、desc*、元数据*、g*、掩码*、路径*、行*、标记*、rect*、圆*、省略*、多边形*、多边形*、折线*、线性梯度*、辐射梯度*、停止*、图像*、视图*、文本*、文本路径*、标题*、tspan*、字形*、符号*、开关*、使用*“ *注:我只增加了与我的案件有关的因素。
票数 11
EN

Stack Overflow用户

发布于 2018-02-20 03:14:56

我尝试了Koen的第一个建议,它适用于现有的SVG内容(我在setup回调中添加了这一点)。但是,当将HTML粘贴到源代码编辑器并确认对话框时,它仍然过滤掉SVG标记。

在深入了解TinyMCE的源代码以查看这些元素实际被删除的位置(在DomParser类中)之后,我发现了一个Schema类的无文档编辑器设置,它指定了允许空而不被删除的标记。唯一令人讨厌的是,您不能使用它添加到现有的列表,您只能覆盖它。因此,在设置它时,您必须列出默认情况下它在其中的标记。在初始化TinyMCE时,请在提供给它的设置中使用此方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// First the list of tags that it normally knows about by default:
non_empty_elements: "td,th,iframe,video,audio,object,script,pre,code,area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source,wbr,track"
// Now we add tags related to SVGs that it doesn't normally know about:
+ "svg,defs,pattern,desc,metadata,g,mask,path,line,marker,rect,circle,ellipse,polygon,polyline,linearGradient,radialGradient,stop,image,view,text,textPath,title,tspan,glyph,symbol,switch,use",

这样,这些SVG标记就不应该被过滤掉,因为它们是空的--只要它们在一般情况下也是有效的,例如,按照Koen的建议设置extended_valid_elements,或者允许所有元素(不推荐,因为它使您容易受到XSS攻击):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extended_valid_elements: "*[*]"

请注意,这对于我的4.5.8版本的TinyMCE是有效的。由于此设置是无文档化的,因此它在当前或未来版本中可能不再工作。此外,它们可能调整了我在以后版本中重写的默认列表。在源代码中查找nonEmptyElementsMapshortEndedElementsMap,以在您的版本中找到默认列表(这两个列表合并了),并注意,在那里,标记是用空格分隔的,但是当您自己提供列表时,列表是用逗号分隔的(不管出于什么原因)。

票数 6
EN

Stack Overflow用户

发布于 2016-06-20 01:51:05

因为它是一个空标记而被TinyMCE删除的接缝:http://world.episerver.com/forum/developer-forum/-EPiServer-75-CMS/Thread-Container/2015/1/tinymce-and-svgs/

您的可能会在init中使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extended_valid_elements : "svg[*]",

它与其他空标签等一起工作,但从未尝试过使用SVG。

从我链接到的论坛帖子:

好的,我在TinyMCE中做了一些调试,问题似乎是svg元素被检测为空,并被删除。 不幸的是,没有配置方式来改变这种行为,但是有一些解决办法。

  1. 始终有svg元素的名称attibute:<svg name="something"
  2. 始终有svg元素的data-mce属性:<svg data-mce-something="something"
  3. 在svg元素中包含一些文本内容:<svg>&nbsp;</svg>,使用这些技术,我可以成功地将内联svg存储在xhtml属性中
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37862695

复制
相关文章
Tinymce plugins [Tinymce扩展插件集合]
因为项目需要用到富文本编辑器众多富文本编辑器中,选择了 Tinymce,根据项目需要对Tinymce 进行扩展和增强插件,记录一下,并同时分享给需要帮助的人。
Fivecc
2022/11/20
2.8K0
Tinymce plugins [Tinymce扩展插件集合]
SVG之旅:SVG的图层和渲染顺序
不管是在制图软件中还是Web页面的DOM元素,都有层的概念。在制图软件中,大家比较熟悉,能非常的清晰的看出图层的概念。而在Web页面中,特别是我们熟悉的HTML的DOM中,其实他也有层的概念。不同的是制图软件可以用鼠标拖动图层来改变层次,而DOM中需要依赖于CSS的属性来控制他的层次关系。其实在SVG中,他也有层和渲染顺序的概念。今天我们就来看看SVG中的图层和渲染顺序相关的知识。 SVG的图层 首先我们来看SVG图层这个东东,相信只要使用过制图软件,比如Photoshop或者Sketch等,对于图层的认识
企鹅号小编
2018/02/28
7.1K0
SVG之旅:SVG的图层和渲染顺序
tinymce图片上传
对于上传图片功能,tinymce提供了很多相关配置http://tinymce.ax-z.cn/configure/file-image-upload.php
py3study
2021/04/16
5.9K0
tinymce图片上传
使用svgdeveloper 和 svg-edit 绘制svg地图
目录: 1. 描述 2. 准备工作 3. 去除地图模板上的水印(可跳过) 4. 方法一、SVGDeveloper 5. 方法二、SVG-Edit 1. 描述 有的时候我们需要自定义地图,本文提供基本的基于SVG的矢量图制作教程; 2. 准备工作 地图模板:例如需要自定义某个省份,挑选一张省份的地图图片即可,本文以吉林省地图为例jilin.png; SVGDeveloper:绘制矢量地图软件,这里提供1.0安装包,试用30天,如需激活,请自行购买SVGDeveloper1.0; SVG-Edit :绘制矢量地
庞小明
2018/03/07
8.9K0
使用svgdeveloper 和 svg-edit 绘制svg地图
vue项目使用tinymce
TinyMCE官方推荐使用cdn进行加载,但是需要先购买才行,不想购买则只能悬着手动加载TinyMCE。
李郑
2020/02/17
1.8K0
位图和SVG用法比较
位图,亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成整个图像的无数单个方块。扩大位图尺寸的效果是增大单个像素,从而使线条和形状显得参差不齐。然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。 提到SVG,我想大多数人的第一印象是矢量缩放。是的,SVG是制作Logo、图标及按钮的理想选择。和位图不同,SVG可以在不失真情况下进行任意的缩放。同时,和传统Web字体不同的是,SVG可以使用多种颜色、渐变甚至
葡萄城控件
2018/01/10
3K0
位图和SVG用法比较
SVG - 创建SVG图片
SVG - 创建SVG图片 HTML5学堂:之前在绘图中使用到了SVG以及Canvas,因此决定最近将绘图类的知识和大家分享一下。从研究角度来说,SVG比Canvas要难很多。没有合适的中文文档,自己只能去翻译英文文档(唉,英语不好啊)。今天先来说说SVG的基本知识以及创建SVG的基本方法。 SVG是什么 W3C推荐的网页图形格式,类似于Flash,SVG是一种描述二维矢量图形的标记语言,但它是一种开发的以XML为基础的语言,不是一种私有语言。 SVG的支持程度 IE8-以及Android 2.3默认浏览器
HTML5学堂
2018/03/12
4.1K0
SVG绘图-SVG.js
官方文档:https://svgjs.dev/docs/3.0/getting-started/
码客说
2021/12/05
6.3K0
SVG绘图-SVG.js
Vue项目中使用Tinymce
最近因为公司项目的后台管理端需要实现编辑器功能, 一方面满足编辑各类文章内容需求,另一方面要自己编辑一些课程相关的介绍,于是就花了一些时间对比体验现有的一些开源的编辑器。
coder_koala
2019/07/30
4.8K0
Vue项目中使用Tinymce
tinymce实现导入word功能
tpImportword 插件用于 tinymce 富文本编辑器 实现导入word功能, 并且最大可能保存布局样式与颜色等
Fivecc
2022/11/20
2.4K0
SVG - 基本的SVG属性
SVG - 基本的SVG属性 HTML5学堂:在前一篇文章当中,我们讲解了SVG的基本知识,并且为大家介绍了如何在html文件当中书写SVG代码。今天我们具体讲解SVG的基本属性,如何使用SVG完成线、圆等图形的绘制。 line - 直线 拥有四中基本属性 x1 属性在 x 轴定义线条的开始 y1 属性在 y 轴定义线条的开始 x2 属性在 x 轴定义线条的结束 y2 属性在 y 轴定义线条的结束 demo <line x1 = "20" y1 = "20" x2 = "200" y2 = "180" st
HTML5学堂
2018/03/12
4.1K0
vue2 renrne 引入tinymce[通俗易懂]
下载 地址 : https://www.tiny.cloud/get-tiny/self-hosted/
全栈程序员站长
2022/09/06
1.5K0
SVG
HTML体系中,最常用的绘制矢量图的技术是SVG和HTML5新增加的canvas元素。这两种技术都支持绘制矢量图和光栅图。不过canvas更偏重于动画的制作。所以,绘制矢量图的大任落到了SVG身上。
踏浪
2019/07/31
5.7K0
SVG
django中使用tinymce 富文本
安装完成之后,就可以在D:\python\Lib\site-packages\django_tinymce-2.7.0-py3.6.egg这个文件夹。
py3study
2020/01/16
1.3K0
django中使用tinymce 富文本
SVG字体比IconFont更好用(SVG Sprite)
也许大家都用过字体图标(https://www.iconfont.cn/——,但这次看了这篇文章,感觉直接使用svg更加方便。。。
javascript.shop
2019/09/04
3.2K0
SVG字体比IconFont更好用(SVG Sprite)
SVG绘图
前言 图形 SVG <svg id="test_1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="600" height="400" viewBox="0 0 300 200"> <g style="fill:#d2fae3;stroke:#82eeb5;stroke-width:1"> <rect x="10" y="10" width="100" he
码客说
2021/12/05
2.2K0
SVG基础
SVG可缩放矢量图形Scalable Vector Graphics是基于可扩展标记语言XML,用于描述二维矢量图形的一种图形格式。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式,SVG于2003年成为W3C推荐标准。
WindRunnerMax
2020/08/27
2.3K0
SVG初识
个人认为现在svg可能有点过时了,svg的很多功能css3或者canvas都能做到很好的效果,
用户3055976
2018/09/12
1.6K0
SVG初识
Vue | 使用 SVG sprite loader 来引入 svg
这个库给的示例代码是 webpack.config.js 但是我们现在在用的是 Vue
Zkeq
2022/09/20
3.3K0
Vue | 使用 SVG sprite loader 来引入 svg
SVG基础知识 Adobe Illustrator绘制SVG
此外还有阴影渐变,等滤镜,等就太复杂了,设计到矩阵变换等高等数学的内容,自己有心无力。
mySoul
2018/10/13
2.8K0

相似问题

如何使SVG在TinyMCE中可选?

17

tinyMCE和insertAtCaret(),替代tinyMCE?

20

TinyMCE和Laravel

14

书签和tinyMCE

17

TinyMCE和Yii

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文