diff --git a/projects/player/src/app/services/marking.service.ts b/projects/player/src/app/services/marking.service.ts index c50fcfa464c24680e72112246a2d9831e37cd8ab..14b5ddf4a2c08437f4a7667d5daad01427af2853 100644 --- a/projects/player/src/app/services/marking.service.ts +++ b/projects/player/src/app/services/marking.service.ts @@ -11,8 +11,7 @@ export class MarkingService { if (clear) { this.clearMarkingFromNode(range); } else { - const markedElement: HTMLElement = this.createMarkedElement(color); - range.surroundContents(markedElement); + this.markNode(range, color); } } else { const nodes: Node[] = []; @@ -99,6 +98,13 @@ export class MarkingService { return { text, previousText, nextText }; }; + private markNode(range: Range, color: string): void { + if (range.startContainer.parentElement?.tagName.toUpperCase() !== MarkingService.MARKING_TAG) { + const markedElement: HTMLElement = this.createMarkedElement(color); + range.surroundContents(markedElement); + } + } + private markNodes(nodes: Node[], range: Range, color: string): void { nodes.forEach((node, index) => { const nodeValues = this.getNodeValues(node, nodes, index, range);