diff --git a/glossary/GT_bindings.js b/glossary/GT_bindings.js index 24452f7..8c7bb46 100644 --- a/glossary/GT_bindings.js +++ b/glossary/GT_bindings.js @@ -6,6 +6,7 @@ import { testSybdApiConnection, fetchSybdModels } from '../core/api/SybdApi.js'; import { handleFileUpload, processNovel } from './index.js'; import { reorganizeEntriesByHeadings, loadDatabaseFiles } from './executor.js'; import { SETTINGS_KEY as PRESET_SETTINGS_KEY } from '../PresetSettings/config.js'; +import { escapeHTML } from '../utils/utils.js'; const moduleState = { selectedWorldBook: '', @@ -267,12 +268,12 @@ async function renderWorldBookEntries() { } if (source && target) { - body += `${source.trim()}${rel.trim()}${target.trim().replace(';','')}`; + body += `${escapeHTML(source.trim())}${escapeHTML(rel.trim())}${escapeHTML(target.trim().replace(';',''))}`; } }); return `${body}
源头关系目标
`; } catch { - return `
${content}
`; + return `
${escapeHTML(content)}
`; } } if (trimmedContent.includes('|') && trimmedContent.includes('\n')) { @@ -283,7 +284,7 @@ async function renderWorldBookEntries() { let isHeaderRow = true; rows.forEach(rowStr => { if (rowStr.includes('---')) return; - const cells = rowStr.split('|').filter(c => c.trim()).map(cell => `${cell.trim()}`).join(''); + const cells = rowStr.split('|').filter(c => c.trim()).map(cell => `${escapeHTML(cell.trim())}`).join(''); if (isHeaderRow) { header += `${cells.replace(//g, '').replace(/<\/td>/g, '')}`; isHeaderRow = false; @@ -293,15 +294,15 @@ async function renderWorldBookEntries() { }); return `${header}${body}
`; } catch { - return `
${content}
`; + return `
${escapeHTML(content)}
`; } } - return `
${content}
`; + return `
${escapeHTML(content)}
`; }; entryElement.innerHTML = `
- ${title} + ${escapeHTML(title)}
@@ -484,7 +485,7 @@ function bindNovelProcessEvents() { chunkCountEl.textContent = newChunks.length; chunkPreviewEl.innerHTML = newChunks.map((chunk, index) => - `
块 ${index + 1}: ${chunk.content.substring(0, 100)}...
` + `
块 ${index + 1}: ${escapeHTML(chunk.content.substring(0, 100))}...
` ).join(''); resetProcessing(); @@ -563,7 +564,7 @@ function bindNovelProcessEvents() { fileInput.addEventListener('change', (event) => { const file = event.target.files[0]; if (!file) return; - fileLabel.innerHTML = ` 已选择: ${file.name}`; + fileLabel.innerHTML = ` 已选择: ${escapeHTML(file.name)}`; handleFileUpload(file, (content) => { fileContent = content; updateChunks();