我在一个单独的文件中定义了一些SVG过滤器和标记,以用于我的主要SVG内容。外部定义的SVG标记和过滤器不能在Chrome中工作
这里是从文件(dependencies.svg)样品:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<filter id="grayscale">
<feColorMatrix type="matrix" values="0.6666 0.3333 0.3333 0 0 0.3333 0.6666 0.3333 0 0 0.3333 0.3333 0.6666 0 0 0 0 0 1 0"></feColorMatrix>
</filter>
<marker id="Output" viewBox="0 -6 12 11" refX="10" markerHeight="8" markerWidth="8" orient="auto">
<path d="M0,-5L10,0L0,5L0,-5" stroke-width="1px" markerWidth="8" markerHeight="8" stroke="#696969" style="fill: rgb(105, 105, 105);"></path>
</marker>
在Firefox以下作品时施加到行:
marker-end: url("/path/to/dependencies.svg#Output");
然而,它没有在Chrome工作或歌剧。
当我尝试将滤镜应用于元素(如<rect>
元素)时也是如此。
奇怪的是,我可以看到我的dependencies.svg文件在两种情况下都加载(firefox和webkit),但是webkit什么也不做。
我已经测试了这两个属性作为style
属性和filter
和marker-end
属性的一部分。在所有情况下,Firefox都可以工作,Webkit不会。
这是Webkit的一个已知缺陷还是我错过了一些真正明显的东西?
编辑:我想这可能是一个闪烁问题(我一直在说的Webkit,老习惯)
(确认)尝试过几个简单的测试用例,对我来说它也像是一个Blink bug。但与你不同的是,我无法确认在Chrome中由'marker-end'启动的依赖关系请求是否真的被发送;我可以在使用''元素时看到它们,实际上按预期工作。 – myf
感谢您的确认。 – Tsarbomb