1616 < a href ="lipogram-lab.html "> Lipogram Lab</ a >
1717 < a href ="long-tail-lab.html "> Long Tail Lab</ a >
1818 < a href ="grid-it-lab.html "> Grid-It Lab</ a >
19+ < a href ="letter-replacement-lab.html "> Letter Swap</ a >
1920 < a href ="about.html "> About</ a >
2021 </ nav >
2122
@@ -115,6 +116,7 @@ <h3>Display Options</h3>
115116 < span > Remaining: < span id ="remainingCount "> 0</ span > elements</ span >
116117 < span > Erased: < span id ="erasedCount "> 0</ span > elements</ span >
117118 </ div >
119+ < button class ="apply-btn " id ="exportBtn " style ="display: none; margin-top: 15px; "> Export TXT</ button >
118120 </ div >
119121
120122 < script >
@@ -266,6 +268,19 @@ <h3>Display Options</h3>
266268 updateStats ( elements , processedElements ) ;
267269 }
268270
271+ const exportBtn = document . getElementById ( 'exportBtn' ) ;
272+ exportBtn . addEventListener ( 'click' , function ( ) {
273+ const text = outputText . textContent ;
274+ if ( ! text ) return ;
275+ const blob = new Blob ( [ text ] , { type : 'text/plain' } ) ;
276+ const url = URL . createObjectURL ( blob ) ;
277+ const a = document . createElement ( 'a' ) ;
278+ a . href = url ;
279+ a . download = 'eraser-lab-output.txt' ;
280+ a . click ( ) ;
281+ URL . revokeObjectURL ( url ) ;
282+ } ) ;
283+
269284 function updateStats ( originalElements , processedElements ) {
270285 const originalCount = originalElements . length ;
271286 const erasedCount = processedElements . filter ( ( element , index ) => {
@@ -282,6 +297,7 @@ <h3>Display Options</h3>
282297 document . getElementById ( 'erasedCount' ) . textContent = erasedCount ;
283298
284299 stats . style . display = 'flex' ;
300+ exportBtn . style . display = 'block' ;
285301 }
286302 </ script >
287303</ body >
0 commit comments