Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 我如何用url()解决Firefox的这个问题,使它赢得';你不能进入其他浏览器吗?_Css_Url_Firefox_Svg - Fatal编程技术网

Css 我如何用url()解决Firefox的这个问题,使它赢得';你不能进入其他浏览器吗?

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

我用D3绘制了一张图表,它随着时间的推移而产生动画,显示了根据流经系统的流程进入和退出的链接

在我的图表中,我使用marker mid在链接上呈现标记,以指示流向(有关标记的概念,请参阅my)。这些链接是通过以下方式输入的:

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之后建立基地,但没有成功。