2016-11-26 2 views
0

Ich versuche, Text in Svg über Snap.svg anfügen/schreiben. Der folgende Code funktioniert in Chrome, Firefox, Opera und Edge, funktioniert aber nicht im Internet Explorer. Ich habe versucht, Charset als utf8 in Meta-Tag innerhalb der HTML-Datei setzen, aber es funktioniert immer noch nicht.Whitespaces in Svg Text im Internet Explorer

Wenn Zeilen2 als Argument übergeben wird, dann betrachten Internet Explorer   als normale Zeichenfolge.

 var lines1 = ["a   b", "c d", "e f"]; 
    var lines2 = ["a   b", "c d", "e f"]; 
     Snap("#svg").text(10, 0, lines).attr({ 
      fill: "black", 
      fontSize: "18px" 
     }).selectAll("tspan").forEach(function(tspan, i) { 
      tspan.attr({ 
       x: 0, 
       dy: 20 
      }); 
      tspan.node.innerHTML = tspan.node.textContent.replace(/ /g,' '); 
     }); 

Hier ist ein jsfiddle Link für sie.

Antwort

0

Die Verwendung von innerHTML auf SVG-Elementen wird nicht universell unterstützt. Nur wirklich für die neuesten Browserversionen.

Verwenden Sie textContent, und anstelle der Entität HTML Latin1 verwenden Sie stattdessen das Unicode-Zeichenäquivalent von nbsp (ASCII 160).

var lines = ["a   b", "c d", "e f"] 
 
Snap("#svg").text(10, 0, lines).attr({ 
 
    fill: "black", 
 
    fontSize: "18px" 
 
}).selectAll("tspan").forEach(function(tspan, i) { 
 
    tspan.attr({ 
 
    x: 0, 
 
    dy: 20 
 
    }); 
 
    tspan.node.textContent = tspan.node.textContent.replace(/ /g,'\u00a0'); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.4.1/snap.svg-min.js"></script> 
 

 
<svg id='svg'></svg>

+0

Es funktionierte !! Vielen Dank.... –

0

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

vielleicht wird meine Lösung hilfreich versuchen, diese Doctype Deklaration hinzuzufügen, Ihr Problem mit dem Internet Explorer zu lösen.

Verwandte Themen