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
5
A
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'));
Dlaczego wspomniany polyfill w jednej z połączonych odpowiedzi nie pomaga? –
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
Polyfill definiuje zamienniki. https://github.com/progers/pathseg/blob/master/pathseg.js#L20 –