javascript - 错误所有浏览器,但 Firefox 尝试使用 d3.js 更改背景图像
问题描述
我收到一个我无法理解的有线错误。
我将背景图像(svg 文件)放在带有 CSS 的 div 中。我使用这个 SVG 生成一个 Sprite 动画,效果很好。
.runner {
background: url("0804_0537_Runner_sf-24.svg") no-repeat;
display: inline-block;
width: 30px;
height: 40px;
animation: walk 0.4s steps(18) infinite;
animation-play-state: paused;
}
背景图像将在开始时在所有浏览器中加载。但是当我之后尝试使用 d3.js 更改背景图像时
var animatedicon = "0805_0537_Runner_sf-24.svg";
d3.selectAll('.runner')
.transition()
.delay(1000)
.style('background', 'url('+animatedicon+') no-repeat');
除了 FireFox 之外的所有浏览器都会抛出错误。这是来自 Chrome 的控制台日志:
GET file:///Volumes/.../804.9576754956776_536.9717661381104_Runner_sf-23.99873815142393svg net::ERR_FILE_NOT_FOUND
GET file:///Volumes/.../805_537_Runner_sf-24svg net::ERR_FILE_NOT_FOUND
在 DOM 中直接加载文件也没有问题<object>
。如何让 3D.js 替换正确的 URL,而无需在名称之间填充有线数字或忘记名称的第一个0
和文件类型 dot(!) ...24svg
?
解决方案
好的,这似乎是 d3.js 中的一个错误,它与文件名中的数字(!)有关。
一旦我将名称从 0804_0537_Runner_sf-24.svg 更改为例如Runnerstart.svg和 0805_0537_Runner_sf-24.svg => Runnerrun.svg或_Runnerrun.svg一切正常...
推荐阅读
- python - 我不能在python中启动两个并行线程吗,每个线程都有一个forerver循环
- javascript - 将 javascript 滑块添加到 BigCartel 自定义页面
- python - SQLAlchemy:会话关闭时使用相关对象
- python-3.x - python中类的不同记录器
- java - 如果地图中不存在属性,如何使用 strsubsitutor 将模板字符串中的值替换为 null 或空字符串
- javascript - 将鼠标悬停在模式链接上时隐藏浏览器状态栏上的链接
- javascript - 如何使用 JavaScript 将文本复制到剪贴板而不使用换行符?
- .net - Serilog .NET 核心:过滤请求日志并将它们发送到单独的接收器
- regex - 正则表达式在两个边界之间查找字符串
- c++ - 与视图一起使用的自定义容器类型的要求