Skip to content

Caixa de Confirmação Antes de Sair

Quantas vezes estamos nós a editar conteudo numa zona administrativa, ou a escrever um artigo no wordpress, ou a preencher um formulário gigantesco e sem querer mudamos de janela e perdemos informação. Não era maravilhoso se os programadores tivessem pensado numa confirmação antes de sair da página?

Vou-vos mostrar como nós programadores podemos resolver este problema.

A ideia é bastante simples. Com javascript vamos adicionar a nossa acção de confirmação e associar ao evento de saída da página. Nota: Não iremos usar o método onUnLoad da tag body. Desta forma teremos mais controle nos nossos eventos.

// Gestão de Eventos
function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent)
	{
		var r = elm.attachEvent(’on’ + evType, fn);
		return r;
	}
	else
	{
		elm[’on’ + evType] = fn;
	}
}
function removeEvent(elm, evType, fn, useCapture)
{
	if (elm.removeEventListener)
	{
		elm.removeEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.detachEvent)
	{
		var r = elm.detachEvent(’on’ + evType, fn);
		return r;
	}
	else
	{
		elm[’on’ + evType] = “”;
	}
}
// Adicionar Listeners
function addListeners(e)
{
	addEvent(window, ‘beforeunload’, exitAlert, false);
}
// Alert de Saída
function exitAlert(e)
{
	var msg = “Ao sair irá perder a informação já preenchida.”;
	// definir evento
	if (!e) { e = window.event; }
	if (e) { e.returnValue = msg; }
	// return warning message
	return msg;
}
// Iniciar
addEvent(window, ‘load’, addListeners, false);

Escreva um Comentário

O seu email nunca será publicado ou partilhado. Campos obrigatórios marcados a *