.css() 在数据 URI 的分号后跟有冒号时会分割声明
.cs()'当分号后的部分含有分号时,仍将声明分拆,并重写不相干的财产后会腐蚀式'属性。
测试了caiio 1.2.0(和目前的 " main " )。
- 复制
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? Const cheio = 需要 ('cheerio') ;
const style = “背景:url (”数据:image/svg+xml;utf8,)” ;
cons $ = cheario.load (<div tyle ='${style}' ></div>;
div = $('div');
a. 控制台.log($div.cs ()); $div.css ("颜色","红色"); 控制台.log($div.attr ('style') ) ;
预期
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
{背景:'url ("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'/>")}'?
// 背景:url ("数据:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'/");颜色:红色;实际数
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? { 背景 : “ url ("data: image/ svg+xml" , "utf8,"". {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? // 背景:url("数据:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'/");颜色:红色;
两个不同的问题:
1. 申报在 " ; " 数据URI内进行分拆,产生一个假的第二个财产。
2. 因为`.cs(prop, val)'将它分析的所有内容重新序列化,设置一个 * 无关的 * 财产将所刻出的价值写回元素。 URL现在包含";"和":",所以画面默默地停止了加载. 电话编码中没有任何内容触及“背景”。
为什么1134的修补没有覆盖这个
#1134 (和它之前的#907) 为 “url(data:image/png; base64,.)” 确定了相同的分数。 该固定装置保留一个没有结肠的碎片,作为先前价值的延续,该价值用于`base64,.'。 但一个数据URI,其文本在";" * does * 中包含一个结肠取去另一个分支并成为一个新的属性. `xmlns='http://www.w3.org/2000/svg'是这里的常见情况,因为内部的SVG数据几乎总是带有这种属性。
这同样适用于任何引用的具有`;'和`;'的价值:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
cheario.load(QQLI样式=) 内容:"a;b:c" ("li"). css (;).
//{内容:"'a","b":"c"}预期:{内容:"'a";"b":"c"}按CSS语法,a;或`:'在字符串或括号内是值的一部分,不单独声明。 通过一个符合光谱的剖析器(postcs)检查相同的输入,在每个情况中返回一个单个声明。
修补
在扫描分隔的 " ; " 和 " : " 处理所有这些问题时,略过所引用的章节和括号,并将 " Base64 " 案归入第1134号案,而不是专门分类。 很高兴打开公关——我已准备好更改和测试.
内容来源: cheeriojs/cheerio