Javascript SVG文本路径在IE中无法正常工作

Javascript SVG文本路径在IE中无法正常工作,javascript,html,css,svg,d3.js,Javascript,Html,Css,Svg,D3.js,我正在制作一个SVG,它的文本沿着一条环形线路径 该文本在Firefox和Chrome中看起来很棒,但在IE11中看起来不太对劲。有时仅显示文本路径上的第一个字母 给你 您遇到的一些问题是由于在数组声明中包含了一个额外的逗号,例如在html页面的第151行: var options = [{ name: "Casting", link: "casting", color: "#737373", }, {... 变量选项=[{ 名称:“铸造”, 链接:“铸造”, 颜色:#7

我正在制作一个SVG,它的文本沿着一条环形线路径

该文本在Firefox和Chrome中看起来很棒,但在IE11中看起来不太对劲。有时仅显示文本路径上的第一个字母

给你


您遇到的一些问题是由于在数组声明中包含了一个额外的逗号,例如在html页面的第151行:

var options = [{ name: "Casting", link: "casting", color: "#737373", }, {... 变量选项=[{ 名称:“铸造”, 链接:“铸造”, 颜色:#737373“, }, {... 最后一个数组项“color:#737373”后面的额外逗号是无效的Javascript语法(ECMA3),会使许多浏览器感到不安

请参阅此问题的答案:

看起来Home.js和magic.circles.js中也有类似的错误。在其他一些语言中,这样的尾随逗号是合法的,但在Javascript中是不合法的。Firefox/Chrome/Safari似乎可以容忍这个错误,但IE的大多数版本都会被它扼杀

本网站提供了一个查找恶意逗号的便捷工具:


我最终弄明白了这一点

下面是SVG中圆形路径外部文本的获奖公式,它与IE、Firefox和Chrome兼容

var size = 50; // radius of ring
var centerX = 100;  // center x
var centerY = 100;  // center y

d3.select("#myDiv")
  .append("path")
.attr("id", "path1")
  .attr("d", "m "+centerX+", "+centerY+" a -"+size+",-"+size+" 1 1,1 "+size*2+",0 a -"+size+",-"+size+" 1 1,1 -"+size*2+",0")
 // do not use transform scale with text paths, IE does not like it! Define variables like this.

  d3.select("#myDiv")
    .append("text")
    .append("textPath")
    .attr("xlink:href", "#path1")
    .style("font-size", "10px")
    .style('letter-spacing','0px')
    .text("hello radial world")
    .attr("fill", "blue")

你确定浏览器模式和文档模式设置为IE 8+?我不确定。这是通过设置doctype来完成的吗?检查此讨论:,确保至少设置了IE 9,因为IE8不支持SVG。CSS文件使用
-webkit-
规则。这是我见过的最接近的东西。嘿,下划线。谢谢你的回答。我删除了tra我正在从页面中删除逗号,但错误仍然存在。致以最诚挚的问候,,,DSHey Boat,你能为magicCircles安装一个JSFIDLE吗?你的页面有很多依赖项,我无法在本地复制。此外,我想玩圆圈:-)谢谢。这正是我需要的。让我不用自己去弄清楚它。
var size = 50; // radius of ring
var centerX = 100;  // center x
var centerY = 100;  // center y

d3.select("#myDiv")
  .append("path")
.attr("id", "path1")
  .attr("d", "m "+centerX+", "+centerY+" a -"+size+",-"+size+" 1 1,1 "+size*2+",0 a -"+size+",-"+size+" 1 1,1 -"+size*2+",0")
 // do not use transform scale with text paths, IE does not like it! Define variables like this.

  d3.select("#myDiv")
    .append("text")
    .append("textPath")
    .attr("xlink:href", "#path1")
    .style("font-size", "10px")
    .style('letter-spacing','0px')
    .text("hello radial world")
    .attr("fill", "blue")