2015-09-25 51 views
2

我在一個單獨的文件中定義了一些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屬性和filtermarker-end屬性的一部分。在所有情況下,Firefox都可以工作,Webkit不會。

這是Webkit的一個已知缺陷還是我錯過了一些真正明顯的東西?

編輯:我想這可能是一個閃爍問題(我一直在說的Webkit,老習慣)

+0

(確認)嘗試過幾個簡單的測試用例,對我來說它也像是一個Blink bug。但與你不同的是,我無法確認在Chrome中由'marker-end'啓動的依賴關係請求是否真的被髮送;我可以在使用''元素時看到它們,實際上按預期工作。 – myf

+0

感謝您的確認。 – Tsarbomb

回答

2

顯然你是對與「WebKit的」措辭習慣:這是從2010年的WebKit錯誤: References to markers in external SVG documents not applied。據說它使它閃爍不定。

最近發佈的2012年的WebKit SVG錯誤:Make external URL references work,也打開。

當前2012年的Blink錯誤:SVG (filter | fill | stroke | clip-path | mask | marker-*) from external files not applied顯示活動,因此它可能會在2018年(手指交叉)修復。

+0

是的,我打開了一個鉻項目的門票,它合併成了一個Blink門票,自2012年以來我一直在打開門票......哦。 – Tsarbomb

+0

很酷。爲了文檔目的,在描述中添加了該問題。看到當今幾乎古老的SVG標準如此尷尬的採用讓我感到悲傷。 – myf

相關問題