2017-02-01 4 views
1

EDIT:Firefoxはこれをサポートする唯一のブラウザだと思われます。私は で、Chrome用のソリューションを探しています。<a> svgのハイパーリンク<use>

私は、ウェブサイトの複数のページに繰り返されるSVGヘッダを持ってしようとしている、と私は<use>とそれを達成することができますが、問題は、SVG(すなわちロゴ)のハイパーリンクが応答しないということですクリックイベント。

ここに、問題を示す簡略化されたスニペットがあります。インラインハイパーリンクの左側のボックスは正常に動作しますが、<use>タグを使用して含まれている場合は、右側のボックスに示すようにクリックに反応しません。

<svg width="300" height="100"> 
 
    <svg id="link"> 
 
    <a href="https://google.com"> 
 
     <rect width="100" height="100" /> 
 
    </a> 
 
    </svg> 
 
    <use x="200" xlink:href="#link"></use> 
 
</svg>

それはここにも利用できます:https://jsfiddle.net/sh8276gu

+0

UA /ブラウザでこれをテストしていますか? –

+0

私はChrome 55、Edge 40、IE 11をWin10上でテストし、Android 55.1ではChrome 55をテストしました。@ RobertLongson – MSbitani

+0

Firefox 51で正常に動作することがわかりました。今起こっていないことが予想されることをより明確に説明してください。 –

答えて

0

SVGはXMLベースではなくベースのHTMLですので、あなたは、通常のHTML <a>タグを使用して、代わりに使用してリンクを含めることはできませんXlink

これは、<use>タグ内で適用したのと同じタイプのリンク方法です。 XLINKを使用して再フォーマットコードは次のようになります

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="300" height="100"> 
    <svg id="link"> 
    <a xlink:href="https://google.com"> 
     <rect width="100" height="100" /> 
    </a> 
    </svg> 
    <use x="200" xlink:href="#link"></use> 
</svg> 

あなたはSVG here内のリンクを含む詳細を読むことができます。

+0

OPコードはFirefox 51で動作しますが、私は他の場所でテストしていませんが、おそらく彼はまだhrefをサポートしていないUAにいるかもしれません(またはhrefのバグサポートを持っています)。 –

+0

これは[MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href)に従って使用することは推奨されていない古い標準です。好奇心の中で私はとにかくそれを試して、それはまだ動作しません。それはあなたのために働いたのですか? – MSbitani

+0

MDNはかなり面白いですが、xlink:Safariではhrefがまだ必要ですので、実際に使用することをお勧めします。 –

関連する問題