伙计们我设法使我的代码通过const Lines
完美地完成了我想做的事情。我的主要问题是我试图获取与正确的stroke
值匹配的points
值。如您所知,我的脚本从该URL解析了SVG,并发送了每个带有发布请求的points
值。无论如何,当我得到匹配的stroke
值时,我可以抓住匹配的points
值吗?是否像l: (JSON.stringify(line))
那样在请求中使用它?因此它将在请求中发送具有匹配的line
值的stroke
? Stroke
值在发送请求时必须采用十六进制格式,就像笔画中显示的一样:示例#30f011
。
最终是否还可以做其他这样的属性?如果需要,可以说stroke-Width
?
在我的脚本中,您可以在请求中看到我添加了stroke
的位置,此格式设置了奇怪的十六进制代码,并且仅获取第一个stroke
值,此后没有更多值。保持不变吗?
xhr=new XMLHttpRequest();
xhr.open("GET", "http://colorillo.com/bwf7.inline.svg");
xhr.addEventListener("load", function() {
const xmlDoc = new DOMParser().parseFromString(
this.responseText.trim(),
"image/svg+xml"
);
const Lines = Array.from(xmlDoc.getElementsByTagName('polyline'), pl =>
pl.getAttribute('points').split(' ').map(pair =>
pair.split(',').map(Number)));
const styles = Array.from(xmlDoc.getElementsByTagName('polyline'), pl =>
pl.getAttribute('style').split(';'))[0];
let stroke = null;
for(let style of styles) {
let valueOffset = style.indexOf(':');
if(style.substr(0, valueOffset).trim() === 'stroke') {
stroke = style.substr(valueOffset + 1).trim()
break;
}
}
Lines.forEach(line => $.post("/draw.php?ing=_index", {
l: (JSON.stringify(line)),
w: ("1"),
c: (stroke), //Only seems to get the first HEX value of line. and that's it.... I need all for each matching ``line``
o: ("75"),
f: ("1"),
_: ("false")
}));
});
xhr.send();