3

インライン SVG を含む HTML ファイルがあります。これは、ライブラリ要素を含む外部 SVG ファイルの SVG 要素を参照します。<use>で要素を使用しxlink:href="Library.svg#libraryShapeID"ます。Opera と Firefox では簡単に動作しますが、Safari では動作しません。ここに簡単なテストファイルを作成しました:

http://sasq.comyr.com/Stuff/SVG/test01.html

ブラウザのバグですか、それとも何か間違っていますか? Safariでも動作するようにするには、どのように書き直すべきですか?

4

2 に答える 2

4

Webkit にはこれに関するバグがありましたが、バージョン: 420+ では修正されていますが、フラグメント識別子のバグはまだ解決されていません。

誰かが答えました: XMLHttpRequest を使用して外部 SVG (WebKit を使用) をインポートします。非常に残念ですが、それまでの間、私は働いていると思います。

于 2012-07-02T22:06:12.633 に答える
1

これは古い質問であることを認識しています。しかし、最近では SVG を使用するこの方法が一般的になっているため、デフォルトで外部 SVG をロードできないブラウザーでもこの手法が機能するように、ポリフィルを作成しました。これを書いている時点では、IE9+ は use 要素での外部 SVG の参照をサポートしていません。私が作成したポリフィルは非常にシンプルで軽量です。SVG の読み込みに失敗したかどうかを検出し、失敗した場合は GET リクエストを送信して取得します。次に、それを body の先頭に追加します。

お役に立てば幸いです。フィードバックをいただければ幸いです。

于 2015-11-16T23:19:35.597 に答える