Voce tem que mudar o while por um IF
O porque disso eh que naquele frame, o botao foi apertado, e isso nao se perde para que caso multiplos scripts precisem verificar o botao, eles nao sejam interrompidos porque outro script executou primeiro.
Com o while voce nunca vai sair dele porque o frame nao roda denovo pra ler o input. Espero ter ajudado!