Css 我如何用url()解决Firefox的这个问题,使它赢得';你不能进入其他浏览器吗?
我用D3绘制了一张图表,它随着时间的推移而产生动画,显示了根据流经系统的流程进入和退出的链接 在我的图表中,我使用marker mid在链接上呈现标记,以指示流向(有关标记的概念,请参阅my)。这些链接是通过以下方式输入的:Css 我如何用url()解决Firefox的这个问题,使它赢得';你不能进入其他浏览器吗?,css,url,firefox,svg,Css,Url,Firefox,Svg,我用D3绘制了一张图表,它随着时间的推移而产生动画,显示了根据流经系统的流程进入和退出的链接 在我的图表中,我使用marker mid在链接上呈现标记,以指示流向(有关标记的概念,请参阅my)。这些链接是通过以下方式输入的: enteringLinks.append('polyline') .attr({ 'stroke-width': 0, style: 'marker-mid: url(#chevron);', stroke: 'tra
enteringLinks.append('polyline')
.attr({
'stroke-width': 0,
style: 'marker-mid: url(#chevron);',
stroke: 'transparent',
path: function(d) {...},
markers: function() {...},
points: function() {...}
});
雪佛龙也在前面以编程方式设置:
svg.append('marker')
.attr({
id: 'chevron',
// ...
})
.append('path')
.attr({...});
我在Firefox中遇到了一个奇怪的bug。更新页面上的查询参数(使用历史API)后,所有新链接都缺少标记。它在更改URL后出现,但找不到“#chevron”。页面上已呈现的链接不受影响
虽然我不能理解这一点,但我知道如何为Firefox解决这个问题-将document.location.href预先添加到标记url,以使url(document.location.href+#chevron)
。我真的不明白为什么它能工作——为什么它能在第一次加载时工作,但在一次更改后却不能工作?但更成问题的是,这破坏了IE9中的所有标记
除了UA嗅探,我还想知道如何在不影响其他浏览器的情况下在Firefox中解决这个问题
顺便说一句,我最初尝试在外部样式表中指定标记mid,但使用该标记根本不会出现在Firefox中——我猜是相同或相关的问题。我的浏览器支持要求是所有主要浏览器的最新版本和IE9+。svg、css和html5规范之间似乎存在不一致之处,即如何处理通过pushState和来自片段标识符的资源更改的文档URI,这反过来会导致浏览器以不同的方式实现
一个建议的解决方法似乎是在pushstate之后设置
document.base
。如果使用外部样式表,url必须包含包含标记的html/svg文件的名称。你这么做了吗?嗨,罗伯特-很遗憾,这不是我的选择-标记是通过JS构建的,并以api+样式表的形式公开,将被我的代码不知道的产品的其他部分使用。哇,谢谢这些!在搜索时,我努力寻找相关问题。看起来Firefox的问题目前正在解决中,所以我将拭目以待。我确实试过在pushstate之后建立基地,但没有成功。