专栏首页向前进【踩坑】activiti工作流的svg-xml解析报错

【踩坑】activiti工作流的svg-xml解析报错

1、问题记录

  工作流配置画模板的时候保存成功但是部署报错。

  IE下 activiti工作流解析xml报错 type "path" must be followed by either attribute specifications, ">" or "/>"

  Chrome和Firefox正常

2、问题定位

  2.1  服务端是同一台服务器同一个实例,IE报错,谷歌没报错,先检查比对两个浏览器在服务端的报文

    执行:服务端比对IE请求和谷歌请求报文,内容格式基本相同。检查path标签是否闭合。

    结果:所有path标签都以>或/>闭合,用compare beyond比对仅是属性值的不同。内容太多,比对工具也没法很清晰的比对不同的地方。

  2.2 比对法不好比对结果,用xmlspy来校验IE下xml数据

    结果:IE的xml中svg的属性marker-end和marker-start的值中有双引号嵌套双引号的情况  "url("#....")" ,下一步定位为什么IE下属性值会出现双引号

  2.3、分析WEB前端代码,找到nodevalue取值,再找到nodevalue赋值的地方

  2.4、这里可以看到markerEndUrl是没有带引号的,而调用setAttributeNS方法后,path上的属性就变成 "url("#....")"

    IE: "url(#....)" setAttributeNS后:"url("#....")"

    Chrome: "url(#....)" setAttributeNS后:"url(#....)"

3、问题解决

    3.1 setAttributeNS方法初步定为是IE内核上nativecode,寻找polyfill

      结果:百度 谷歌 stackflow上没有找到很好的解决方法,转为在取值时修改双引号

    3.2 对marker-end和marker-start取值时特殊处理

结尾:定为问题还是从报错的上下文开始定位,一开始以为是IE的编码问题,再请求部分绕了很大一圈。

  xml的问题用一些xml校验工具比较实在,类似json的数据也是

setAttributeNS这种IE和Chrome下有差异的处理方法 ,猜测是因为()引起,毕竟有很多场景下元素上会有 onclick="fun('aaa')",这里不知道是不是IE做了多余的处理。     有知道准确答案的同学麻烦解惑下,谢谢~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • vue-cli脚手架npm相关文件解读(2)webpack.prod.conf.js

    系列文章传送门: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webp...

    SmileSmith
  • 【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)

    在Vue中的项目,基于VUX-UI开发,一个常见的需求: 1、金额输入框 2、弹出数字键盘 3、仅支持输入两位小数,限制最大11位数,不允许0开头   后续...

    SmileSmith
  • vue-cli脚手架npm相关文件解读(3)webpack.dev.conf.js

    系列文章传送门: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webp...

    SmileSmith
  • SAP C4C Mashup port bindingF4帮助对话框里的数据源

    我们在SAP Cloud for Customer上创建Mashup时,会选择port binding:

    Jerry Wang
  • 黑科技 | 初创公司Astrobotic的月球登录器将在2019年飞往月球

    镁客网
  • Java的@RunWith和@SpringBootTest注解详解

    当一个类用@RunWith注释或继承一个用@RunWith注释的类时,JUnit将调用它所引用的类来运行该类中的测试而不是开发者去在junit内部去构建它。我们...

    公众号-JavaEdge
  • limits.conf

    SuSE上的一些问题,可能需要另参考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903

    一见
  • React动效,真的这么丝滑么

    使用React技术栈如何才能快速实现酷炫动效?今天向大家推荐一个动效库 —— Framer motion。

    公众号@魔术师卡颂
  • 8张图理解Java

    一图胜千言,下面图解均来自Program Creek网站的Java教程,目前它们拥有最多的票选。

    Java团长
  • Lixun命令之 - LAMP安装

    地道小菜鸟

扫码关注云+社区

领取腾讯云代金券