@@ -138,27 +138,27 @@ function renderFileList() {
138138 for ( const { file, mode } of queue ) {
139139 const li = document . createElement ( "li" ) ;
140140 li . className = "file-item" ;
141- li . innerHTML = `
142- <span class="file-item-name" title="${ escapeHtml ( file . name ) } ">${ escapeHtml ( file . name ) } </span>
143- <span class="file-item-size">${ formatSize ( file . size ) } </span>
144- <span class="file-item-badge ${ mode === "encode" ? "badge-encode" : "badge-decode" } ">${ mode . toUpperCase ( ) } </span>
145- ` ;
141+
142+ const nameSpan = document . createElement ( "span" ) ;
143+ nameSpan . className = "file-item-name" ;
144+ nameSpan . title = file . name ;
145+ nameSpan . textContent = file . name ;
146+
147+ const sizeSpan = document . createElement ( "span" ) ;
148+ sizeSpan . className = "file-item-size" ;
149+ sizeSpan . textContent = formatSize ( file . size ) ;
150+
151+ const badge = document . createElement ( "span" ) ;
152+ badge . className = `file-item-badge ${ mode === "encode" ? "badge-encode" : "badge-decode" } ` ;
153+ badge . textContent = mode . toUpperCase ( ) ;
154+
155+ li . appendChild ( nameSpan ) ;
156+ li . appendChild ( sizeSpan ) ;
157+ li . appendChild ( badge ) ;
146158 fileItems . appendChild ( li ) ;
147159 }
148160}
149161
150- function escapeHtml ( text : string ) : string {
151- const map : Record < string , string > = {
152- '&' : '&' ,
153- '<' : '<' ,
154- '>' : '>' ,
155- '"' : '"' ,
156- "'" : ''' ,
157- '/' : '/'
158- } ;
159- return text . replace ( / [ & < > " ' \/ ] / g, ( char ) => map [ char ] ) ;
160- }
161-
162162clearBtn . addEventListener ( "click" , ( ) => {
163163 queue = [ ] ;
164164 renderFileList ( ) ;
@@ -257,12 +257,23 @@ function addResultItem(name: string, data: Uint8Array, previewUrl?: string) {
257257function addResultError ( name : string , message : string ) {
258258 const li = document . createElement ( "li" ) ;
259259 li . className = "result-item" ;
260- li . innerHTML = `
261- <div class="result-item-info">
262- <span class="result-item-name" title="${ escapeHtml ( name ) } ">${ escapeHtml ( name ) } </span>
263- </div>
264- <span class="result-item-error" title="${ escapeHtml ( message ) } ">Error</span>
265- ` ;
260+
261+ const info = document . createElement ( "div" ) ;
262+ info . className = "result-item-info" ;
263+
264+ const nameSpan = document . createElement ( "span" ) ;
265+ nameSpan . className = "result-item-name" ;
266+ nameSpan . title = name ;
267+ nameSpan . textContent = name ;
268+ info . appendChild ( nameSpan ) ;
269+
270+ const errorSpan = document . createElement ( "span" ) ;
271+ errorSpan . className = "result-item-error" ;
272+ errorSpan . title = message ;
273+ errorSpan . textContent = "Error" ;
274+
275+ li . appendChild ( info ) ;
276+ li . appendChild ( errorSpan ) ;
266277 resultItems . appendChild ( li ) ;
267278}
268279
0 commit comments