Skip to content

Commit 3352633

Browse files
Copilotrnwood
andauthored
fix: escape HTML characters in plain text view to prevent content hiding (#1837)
* Initial plan * fix: escape HTML characters in plain text view to prevent content hiding Co-authored-by: rnwood <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: rnwood <[email protected]>
1 parent 81ddf80 commit 3352633

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

Rnwood.Smtp4dev/ClientApp/src/components/messageviewplaintext.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@
4444
4545
srcDoc.set(this.$refs.htmlframe as HTMLIFrameElement, this.html ?? "");
4646
}
47+
48+
private escapeHtml(text: string): string {
49+
const div = document.createElement('div');
50+
div.textContent = text;
51+
return div.innerHTML;
52+
}
4753
async loadMessage() {
4854
4955
this.error = null;
@@ -53,7 +59,8 @@
5359
try {
5460
if (this.message != null) {
5561
56-
this.html = "<pre>" + await new MessagesController().getMessagePlainText(this.message.id) + "</pre>"
62+
const plainText = await new MessagesController().getMessagePlainText(this.message.id);
63+
this.html = "<pre>" + this.escapeHtml(plainText) + "</pre>";
5764
}
5865
} catch (e: any) {
5966
this.error = e;

0 commit comments

Comments
 (0)