2016-02-01 20 views
5

W przeglądarce Chrome 48 plik PathSegList został usunięty. I jak czytam w odpowiedzi na kolejne pytanie "Alternative for deprecated SVG pathSegList", Chrome dostarcza nowy interfejs API, ale domyślam się, że ten nowy interfejs API nie jest jeszcze dostępny. Co to jest inna alternatywa i jak mogę z niej skorzystać. Wiem, że to duplikat, ale link, o którym wspomniałem, nie pomaga mi.PathSegList jest przestarzałe i usunięte w Chrome 48

+0

Dlaczego wspomniany polyfill w jednej z połączonych odpowiedzi nie pomaga? –

+0

ok. Teraz dodałem poly-data-polyfill.js do mojej aplikacji. Ale co jest zamiennikiem dla SVGPathSeg.PATHSEG_MOVETO_REL, createSVGPathSegMovetoAbs i innych podobnych stałych i API? – Harshal

+0

Polyfill definiuje zamienniki. https://github.com/progers/pathseg/blob/master/pathseg.js#L20 –

Odpowiedz

2

Nie potrzebujesz polyfill ścieżki seg (pathSeg.js).

Za pomocą path data polyfill można edytować dane ścieżki jako wspólny obiekt tablicy.

Użyj path data polyfill do pracy z nowym API. Jest zalecane.

var path = document.querySelector('path'); //your <path> element 
//Be sure you have added the pathdata polyfill to your page before use getPathData 
var pathdata = path.getPathData(); 
console.log(pathdata); 
/* 
    you will get an Array object contains all path data details 
    like this: 
    [ 
     { "type": "M", "values": [ 50, 50 ] }, 
     { "type": "L", "values": [ 200, 200 ] } 
    ] 
*/ 

//replacement for createSVGPathSegMovetoRel and appendItem 
pathdata.push({type:'m', values:[200,100]}); 
path.setPathData(pathdata); 

//replacement for createSVGPathSegMovetoAbs and appendItem 
pathdata.push({type:'M', values:[300,120]}); 
path.setPathData(pathdata); 

//replacement for createSVGPathSegLinetoAbs and appendItem 
pathdata.push({type:'L', values:[400,120]}); 
path.setPathData(pathdata); 

console.log(path.getAttribute('d')); 

//create a new path data array 
var pathdata = [ 
    { "type": "M", "values": [ 50, 50 ] }, 
    { "type": "L", "values": [ 200, 200 ] } 
]; 
path.setPathData(pathdata); 
console.log(path.getAttribute('d'));