Html svg中的svg中的ForeignObject中的Select框不';t如果d3.js中有dropshadow,则重新绘制/更新
问题 我正在ForeignObject中创建一些svg图标和一个选择框,以作用于图形的时间轴。svg包含用于设置图形的预设日期范围。在处理这个问题时,我发现在某些浏览器中,更改选择框不会正确更新Html svg中的svg中的ForeignObject中的Select框不';t如果d3.js中有dropshadow,则重新绘制/更新,html,google-chrome,d3.js,svg,safari,Html,Google Chrome,D3.js,Svg,Safari,问题 我正在ForeignObject中创建一些svg图标和一个选择框,以作用于图形的时间轴。svg包含用于设置图形的预设日期范围。在处理这个问题时,我发现在某些浏览器中,更改选择框不会正确更新。您可以更改svg,但在发生某些鼠标事件之前,内容不会更改 我的HTML结构如下所示: body svg defs svg g icon svg g icon svg g icon svg
。您可以更改svg,但在发生某些鼠标事件之前,内容不会更改
我的HTML结构如下所示:
body
svg
defs
svg
g icon
svg
g icon
svg
g icon
svg
g icon
svg
g icon
svg
foreignObject
selectbox
如何复制
我在这里创作了一把小提琴:
行为
- 在Chrome/Chromium/Brave中,当您更改选择框时,它不会更新,直到触发鼠标事件(mouseleave或mouseover)更新图标
元素路径
- 在safari中,更改选择框时,必须单击图标,将鼠标移到图标上不会更新选择框
- 使用Konqueror、Falkon或Firefox 69 Quantum,一切都按预期运行
在64位Gentoo Linux和Mac OS X 10.14.6 Sierra平台上测试,d3.js版本5 出现此问题的原因是基于Chrome的浏览器和Safari无法正确处理我应用于选择框的dropshadow过滤器。不知何故,它们无法正确渲染或重新绘制。删除
svg
元素中的dropshadow过滤器
,将在选项更改时正确更新选择
按钮
变成
我已经向Chrome和Safari浏览器提交了一份报告,希望这个问题能很快得到解决