2

を使用してSVG画像をレンダリングしています

<img src="data:image/svg+xml;charset=utf-8;base64," + src />

ここで、src は Base64 でエンコードされた SVG イメージです。まったく表示されないフィールド内のテキストを除いて、画像内のすべてが正しく表示されます。この問題は Chrome に存在しますが、Internet Explorer には存在しません。この問題を回避する方法についてのアイデアはありますか?

表示された画像を右クリックしてダウンロードし、Linux のイメージ ビューアーで表示すると、テキストが再び完全に表示されます。

編集:SVG画像の例:

<svg width="700" height="220" title="test2" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <text y="100" x="90" dy=".32em" text-anchor="end">
    12                
  </text> 
</svg>
4

1 に答える 1

0

私の場合、a が as として作成され、svg の結果が次のようになるという問題がありまし<text>document.createElement('text')

<svg xmlns="http://www.w3.org/2000/svg">
  <text xmlns y="100" x="90" dy=".32em" text-anchor="end">
     12                
  </text> 
</svg>

window.btoa()また、レンダリングされていないテキストを使用して base 64 にエンコードされた後。私の場合、理由はタグの空のxmlns属性にありました。text

解決策: を使用して要素を作成しdocument.createElementNS('http://www.w3.org/2000/svg', 'text')ました。指定された名前空間 URI と修飾名を持つ要素を作成します。

于 2021-07-13T11:48:06.157 に答える