Pessoal, já estou há alguns dias quebrando a cabeça nesse problema...
O cenário é o seguinte: tenho uma página do sistema dividida em abas, estou usando o jQuery Tabs para isto. Cada aba tem um textarea (que no caso estão acopladas com o TinyMCE, mas isso não vem ao caso).
Com tantas abas e campos de texto, o usuário está com medo de digitar alguma coisa lá, esquecer de gravar e perder a informação. Então pensei em um esquema onde toda vez que o usuário troca de aba, eu executo uma função ajax que compara se o conteúdo dos textareas mudou, dando um aviso pro usuário se ele quer "salvar".
Até aí funciona bem. O problema é quando o cara altera algum textarea e muda de página.
Resolvi tentar o onbeforeunload, mas não está funcionando.
Quando clico em algum link pra deixar a página, o browser até tenta executar as funções que checam alterações nos textareas, mas é como se a tela mudasse antes de finalizar a checagem...
Eu coloquei um alert "teste" só pra travar a página, aí ele fez a checagem corretamente, e quando eu fechei o alert ele seguiu pro link clicado.
Eu to usando o onbeforeunload errado? Tem algum jeito de "brecar" a página, como eu fiz com o alert, até ele fazer os testes necessários e só depois seguir em frente?
Pergunta
mark_
Pessoal, já estou há alguns dias quebrando a cabeça nesse problema...
O cenário é o seguinte: tenho uma página do sistema dividida em abas, estou usando o jQuery Tabs para isto. Cada aba tem um textarea (que no caso estão acopladas com o TinyMCE, mas isso não vem ao caso).
Com tantas abas e campos de texto, o usuário está com medo de digitar alguma coisa lá, esquecer de gravar e perder a informação. Então pensei em um esquema onde toda vez que o usuário troca de aba, eu executo uma função ajax que compara se o conteúdo dos textareas mudou, dando um aviso pro usuário se ele quer "salvar".
Até aí funciona bem. O problema é quando o cara altera algum textarea e muda de página.
Resolvi tentar o onbeforeunload, mas não está funcionando.
Quando clico em algum link pra deixar a página, o browser até tenta executar as funções que checam alterações nos textareas, mas é como se a tela mudasse antes de finalizar a checagem...
Eu coloquei um alert "teste" só pra travar a página, aí ele fez a checagem corretamente, e quando eu fechei o alert ele seguiu pro link clicado.
Eu to usando o onbeforeunload errado? Tem algum jeito de "brecar" a página, como eu fiz com o alert, até ele fazer os testes necessários e só depois seguir em frente?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.