diff --git a/api_webchat/messagesArea.js b/api_webchat/messagesArea.js
index 8e0b0832..d1cc115a 100644
--- a/api_webchat/messagesArea.js
+++ b/api_webchat/messagesArea.js
@@ -268,15 +268,16 @@ class MessagesArea extends HTMLElement {
const messageElement = document.createElement('div');
messageElement.classList.add('message', type);
// Replace \n with
for correct HTML display
- messageElement.textContent = messageText;
- // Replace \n with
elements for correct HTML display
- messageElement.innerHTML = '';
- messageText.split('\n').forEach((line, idx, arr) => {
- messageElement.appendChild(document.createTextNode(line));
- if (idx < arr.length - 1) {
- messageElement.appendChild(document.createElement('br'));
- }
- });
+ messageElement.appendChild(htmlStringToFragment(messageText));
+ // messageElement.textContent = messageText;
+ // // Replace \n with
elements for correct HTML display
+ // messageElement.innerHTML = '';
+ // messageText.split('\n').forEach((line, idx, arr) => {
+ // messageElement.appendChild(document.createTextNode(line));
+ // if (idx < arr.length - 1) {
+ // messageElement.appendChild(document.createElement('br'));
+ // }
+ // });
this.messages.appendChild(messageElement);
this.scrollToBottom();
}
@@ -557,4 +558,16 @@ class MessagesArea extends HTMLElement {
}
-customElements.define('messages-area', MessagesArea);
\ No newline at end of file
+customElements.define('messages-area', MessagesArea);
+
+
+function htmlStringToFragment(htmlString) {
+ console.log(">>>>>>>>>>>>>>>> htmlStringToFragment htmlString: " + htmlString);
+ const normalizedHtml = htmlString.replace(/\n/g, '
');
+ console.log(">>>>>>>>>>>>>>>> htmlStringToFragment normalizedHtml: " + normalizedHtml);
+ const parser = new DOMParser();
+ const doc = parser.parseFromString(normalizedHtml, 'text/html');
+ const fragment = document.createDocumentFragment();
+ Array.from(doc.body.childNodes).forEach(node => fragment.appendChild(node));
+ return fragment;
+}
\ No newline at end of file