Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá.
Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
Criei um sistema para fazer o upload de imagens e alguns campos text.
Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
Gostaria de saber se há como usar javascript para evitar isso?
Agradeço desde já.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Uploader</title>
</head>
<body>
<form action="?" method="post" enctype="multipart/form-data">
<br><br>
<div>selecione a imagem 1</div>
<input type="file" name="foto1" accept="image/*">
<br><br>
<input type="text" name="nome_imagem1">
<br><br>
<input type="file" name="foto2" accept="image/*">
<br><br>
<input type="text" name="nome_imagem2">
<br><br>
<input type="file" name="foto3" accept="image/*">
<br><br>
<input type="text" name="nome_imagem3">
<br><br>
<input type="submit" value="Enviar">
<br><br>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
vardump ($_FILES);
}
?>
</body>
</html>De fato se enviar algo o formulário é reiniciado para evitar problemas graves e deixe assim, mesmo que algum safado possa editar javascript para burlar isso a grande maioria não sabe e nem acidentalmente perturbaria o servidor.
Mas se ao sair do navegador tudo é limpo é configuração dele ou está navegando anônimo ambos casos a aplicação web não pode fazer nada.
Porém não fechar o navegador as sair de sua "janela" ou trocar de aba... Me parece ser algo restrito a sistema operacional ou mesmo software de navegação, até mesmo algum comando do aparelho para que limpe
Nesse caso pode usar a função setInterval para que de tempo em tempo obtenha os valores dos input's no formulário e preencha os campos se houver dados registrados em variáveis
>
Citar
Input e variável vazios = não fazer nada.
Input com dados = adicionar o valor do input a variável.
Input vazio e variável com dados = adicionar o valor da variável ao input.
Caso posso escrever e mostrar aqui um código javascript pra essa finalidade, mas você consegue pois é algo extremamente simples.
Deixo observações....:
Ainda não pode intervir no auto completar do navegador, não poderá dar valor a input se algum software do usuário negar essa ação, e o pior de tudo isso seria algo bem grotesco além que requereria processos que comprometeria a performasse de sua aplicação, sem mencionar que é desnecessário pois pessoalmente não vejo beneficio a não ser que eu esteja enganado e não entendi o motivo.
>
Em 08/05/2025 at 13:59, luiz monteiro disse:
Usei algumas alternativas como addEventListener visibilitychange e setInterval. Mas não resolveu.
Então não enviou o formulário e usou a função setInterval para manipular e os dados se perdem, nesse caso desconheço qualquer coisa do javascript para afim. Pois com certeza quem limpa o formulário é o usuário involuntariamente por algum software que esteja usando.
Usei algumas alternativas como addEventListener visibilitychange e setInterval. Mas não resolveu.