From a489a6808c5df3a00cc54c16552c17d6e930393f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20M=C3=BCller?= Date: Thu, 6 Aug 2026 03:39:13 +0300 Subject: [PATCH] Potential fix for code scanning alert no. 3: DOM text reinterpreted as HTML MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: Albert Müller --- others/translate/app.js | 58 +++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/others/translate/app.js b/others/translate/app.js index bc48199..56f534a 100644 --- a/others/translate/app.js +++ b/others/translate/app.js @@ -814,13 +814,28 @@ async function showComparisonView(originalText, modifiedText, translation) { const originalTranslation = document.createElement('div'); if (originalTranslation && originalTranslation.className !== undefined) { originalTranslation.className = 'translation-option'; - originalTranslation.innerHTML = ` -
-
原始翻译
- -
-
${translation}
- `; + + const originalHeader = document.createElement('div'); + originalHeader.className = 'option-header'; + + const originalTitle = document.createElement('div'); + originalTitle.className = 'option-title'; + originalTitle.textContent = '原始翻译'; + + const originalButton = document.createElement('button'); + originalButton.className = 'use-translation'; + originalButton.setAttribute('data-translation', translation); + originalButton.textContent = '使用此翻译'; + + originalHeader.appendChild(originalTitle); + originalHeader.appendChild(originalButton); + + const originalContent = document.createElement('div'); + originalContent.className = 'option-content'; + originalContent.textContent = translation; + + originalTranslation.appendChild(originalHeader); + originalTranslation.appendChild(originalContent); comparisonContent.appendChild(originalTranslation); } else { console.warn('originalTranslation-Element oder dessen className-Attribut fehlt'); @@ -836,13 +851,28 @@ async function showComparisonView(originalText, modifiedText, translation) { const modifiedTranslation = document.createElement('div'); if (modifiedTranslation && modifiedTranslation.className !== undefined) { modifiedTranslation.className = 'translation-option'; - modifiedTranslation.innerHTML = ` -
-
近义词翻译
- -
-
${modifiedTranslationText}
- `; + + const modifiedHeader = document.createElement('div'); + modifiedHeader.className = 'option-header'; + + const modifiedTitle = document.createElement('div'); + modifiedTitle.className = 'option-title'; + modifiedTitle.textContent = '近义词翻译'; + + const modifiedButton = document.createElement('button'); + modifiedButton.className = 'use-translation'; + modifiedButton.setAttribute('data-translation', modifiedTranslationText); + modifiedButton.textContent = '使用此翻译'; + + modifiedHeader.appendChild(modifiedTitle); + modifiedHeader.appendChild(modifiedButton); + + const modifiedContent = document.createElement('div'); + modifiedContent.className = 'option-content'; + modifiedContent.textContent = modifiedTranslationText; + + modifiedTranslation.appendChild(modifiedHeader); + modifiedTranslation.appendChild(modifiedContent); comparisonContent.appendChild(modifiedTranslation); } else { console.warn('modifiedTranslation-Element oder dessen className-Attribut fehlt');