2017-10-04 102 views
0

我在我的SVG中有一些<圖像0​​元素。我想添加一個onclick處理程序來訪問與特定節點相關的圖像URL,但我無法在DOM文檔中找到字段名稱。如果是HTML,那麼我將訪問this.src,但SVG DOM明顯不同 - 我找不到任何相關文檔。訪問SVG中的圖像元素URL

補充說明:如果我有類似 <image xlink:href="http://example.jpg" onclick="code">那麼我需要'代碼'來訪問當前節點的圖像URL。

回答

0

可以在<object>標籤使用處理程序SVG:

<object type="image/svg+xml" data="picture.svg"> 
    <img src="picture.png" alt=""> 
</object> 
+0

這不是我需要做的。我的SVG在rect元素中包含許多使用圖像元素的JPG縮略圖。我想在每個訪問當前圖像文件URL的地方添加「onclick = ...」處理程序(要在不同的選項卡中查看)。我不想在每個onclick屬性上手動編碼圖像文件URL。 – ACProctor

1

OK,下面兩個似乎工作,雖然我不知道這是推薦:

onclick="window.open(this.getAttribute('xlink:href'),'_blank');"

onclick="window.open(this.getAttributeNS('http://www.w3.org/1999/xlink', 'href'), '_blank');"

0

SVG DOM屬性有一個額外的技巧,因爲許多可以動畫:添加額外的.baseVal(對於非動畫值)屬性名稱。在href的情況下,您可以忽略xlink:部分。

onclick="window.open(this.href.baseVal, '_blank');"