Поправки багов
This commit is contained in:
@@ -18,6 +18,7 @@ function parseSync(xstr, options) {
|
|||||||
let cutTag = '';
|
let cutTag = '';
|
||||||
let inCdata;
|
let inCdata;
|
||||||
let inComment;
|
let inComment;
|
||||||
|
let leftData = 0;
|
||||||
while (i < len) {
|
while (i < len) {
|
||||||
inCdata = false;
|
inCdata = false;
|
||||||
inComment = false;
|
inComment = false;
|
||||||
@@ -26,7 +27,7 @@ function parseSync(xstr, options) {
|
|||||||
let left = xstr.indexOf('<', i);
|
let left = xstr.indexOf('<', i);
|
||||||
if (left < 0)
|
if (left < 0)
|
||||||
break;
|
break;
|
||||||
let leftData = left;
|
leftData = left;
|
||||||
|
|
||||||
if (left < len - 2 && xstr[left + 1] == '!') {
|
if (left < len - 2 && xstr[left + 1] == '!') {
|
||||||
if (xstr[left + 2] == '-') {
|
if (xstr[left + 2] == '-') {
|
||||||
@@ -46,6 +47,9 @@ function parseSync(xstr, options) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const text = xstr.substr(i, left - i);
|
||||||
|
_onTextNode(text, cutCounter, cutTag);
|
||||||
|
|
||||||
let right = null;
|
let right = null;
|
||||||
let rightData = null;
|
let rightData = null;
|
||||||
if (inCdata) {
|
if (inCdata) {
|
||||||
@@ -87,10 +91,6 @@ function parseSync(xstr, options) {
|
|||||||
}
|
}
|
||||||
tag = tag.toLowerCase();
|
tag = tag.toLowerCase();
|
||||||
|
|
||||||
const text = xstr.substr(i, left - i);
|
|
||||||
|
|
||||||
_onTextNode(text, cutCounter, cutTag);
|
|
||||||
|
|
||||||
let endTag = (singleTag ? tag : '');
|
let endTag = (singleTag ? tag : '');
|
||||||
if (tag === '' || tag[0] !== '/') {
|
if (tag === '' || tag[0] !== '/') {
|
||||||
_onStartNode(tag, tail, singleTag, cutCounter, cutTag);
|
_onStartNode(tag, tail, singleTag, cutCounter, cutTag);
|
||||||
@@ -123,9 +123,9 @@ function parseSync(xstr, options) {
|
|||||||
|
|
||||||
if (i < len) {
|
if (i < len) {
|
||||||
if (inCdata) {
|
if (inCdata) {
|
||||||
_onCdata(xstr.substr(i, len - i), cutCounter, cutTag);
|
_onCdata(xstr.substr(leftData, len - leftData), cutCounter, cutTag);
|
||||||
} else if (inComment) {
|
} else if (inComment) {
|
||||||
_onComment(xstr.substr(i, len - i), cutCounter, cutTag);
|
_onComment(xstr.substr(leftData, len - leftData), cutCounter, cutTag);
|
||||||
} else {
|
} else {
|
||||||
_onTextNode(xstr.substr(i, len - i), cutCounter, cutTag);
|
_onTextNode(xstr.substr(i, len - i), cutCounter, cutTag);
|
||||||
}
|
}
|
||||||
@@ -156,6 +156,7 @@ async function parse(xstr, options) {
|
|||||||
let cutTag = '';
|
let cutTag = '';
|
||||||
let inCdata;
|
let inCdata;
|
||||||
let inComment;
|
let inComment;
|
||||||
|
let leftData = 0;
|
||||||
while (i < len) {
|
while (i < len) {
|
||||||
inCdata = false;
|
inCdata = false;
|
||||||
inComment = false;
|
inComment = false;
|
||||||
@@ -164,7 +165,7 @@ async function parse(xstr, options) {
|
|||||||
let left = xstr.indexOf('<', i);
|
let left = xstr.indexOf('<', i);
|
||||||
if (left < 0)
|
if (left < 0)
|
||||||
break;
|
break;
|
||||||
let leftData = left;
|
leftData = left;
|
||||||
|
|
||||||
if (left < len - 2 && xstr[left + 1] == '!') {
|
if (left < len - 2 && xstr[left + 1] == '!') {
|
||||||
if (xstr[left + 2] == '-') {
|
if (xstr[left + 2] == '-') {
|
||||||
@@ -184,6 +185,9 @@ async function parse(xstr, options) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const text = xstr.substr(i, left - i);
|
||||||
|
await _onTextNode(text, cutCounter, cutTag);
|
||||||
|
|
||||||
let right = null;
|
let right = null;
|
||||||
let rightData = null;
|
let rightData = null;
|
||||||
if (inCdata) {
|
if (inCdata) {
|
||||||
@@ -225,10 +229,6 @@ async function parse(xstr, options) {
|
|||||||
}
|
}
|
||||||
tag = tag.toLowerCase();
|
tag = tag.toLowerCase();
|
||||||
|
|
||||||
const text = xstr.substr(i, left - i);
|
|
||||||
|
|
||||||
await _onTextNode(text, cutCounter, cutTag);
|
|
||||||
|
|
||||||
let endTag = (singleTag ? tag : '');
|
let endTag = (singleTag ? tag : '');
|
||||||
if (tag === '' || tag[0] !== '/') {
|
if (tag === '' || tag[0] !== '/') {
|
||||||
await _onStartNode(tag, tail, singleTag, cutCounter, cutTag);
|
await _onStartNode(tag, tail, singleTag, cutCounter, cutTag);
|
||||||
@@ -261,9 +261,9 @@ async function parse(xstr, options) {
|
|||||||
|
|
||||||
if (i < len) {
|
if (i < len) {
|
||||||
if (inCdata) {
|
if (inCdata) {
|
||||||
await _onCdata(xstr.substr(i, len - i), cutCounter, cutTag);
|
await _onCdata(xstr.substr(leftData, len - leftData), cutCounter, cutTag);
|
||||||
} else if (inComment) {
|
} else if (inComment) {
|
||||||
await _onComment(xstr.substr(i, len - i), cutCounter, cutTag);
|
await _onComment(xstr.substr(leftData, len - leftData), cutCounter, cutTag);
|
||||||
} else {
|
} else {
|
||||||
await _onTextNode(xstr.substr(i, len - i), cutCounter, cutTag);
|
await _onTextNode(xstr.substr(i, len - i), cutCounter, cutTag);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user