mirror of
https://github.com/gedoor/legado.git
synced 2024-07-06 23:47:49 +08:00
fix(web): 字数计算考虑换行符
This commit is contained in:
parent
8c730266a7
commit
596ea46916
@ -41,9 +41,8 @@ const calculateWordCount = (paragraph) => {
|
||||
const imgPattern = /<img[^>]*src="[^"]*(?:"[^>]+\})?"[^>]*>/g;
|
||||
//内嵌图片文字为1
|
||||
const imagePlaceHolder = " ";
|
||||
return paragraph.trim().replaceAll(imgPattern, imagePlaceHolder).length;
|
||||
return paragraph.replaceAll(imgPattern, imagePlaceHolder).length;
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
@ -292,8 +292,9 @@ const toChapterPos = (pos) => {
|
||||
nextTick(() => {
|
||||
let wordCount = 0;
|
||||
for (let element of chapter.value[0].children) {
|
||||
wordCount += parseInt(element.getAttribute("wordCount"));
|
||||
if (wordCount >= pos) {
|
||||
wordCount += parseInt(element.getAttribute("wordCount")) + 1;//计算换行符
|
||||
if (wordCount - 1 >= pos) {
|
||||
//最后一段没有换行符
|
||||
jump(element, {
|
||||
duration: 0,
|
||||
});
|
||||
@ -313,9 +314,9 @@ const computeChapterPos = () => {
|
||||
//计算已读字数
|
||||
let mChapterPos = 0;
|
||||
for (let paragraph of chapterElement.children) {
|
||||
mChapterPos += parseInt(paragraph.getAttribute("wordCount"));
|
||||
mChapterPos += parseInt(paragraph.getAttribute("wordCount")) + 1; //计算换行符
|
||||
if (paragraph.getBoundingClientRect().top >= 0) {
|
||||
chapterPos.value = mChapterPos;
|
||||
chapterPos.value = mChapterPos - 1; //最后一段没有换行符
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user