Pergunta

Estou tentando descobrir como evitar o onBeforeUnload evento seja acionado no IE9+ ao usar links sem hrefs.

Eu configurei um violino aqui (um teste simplificado de um cenário real), que descreve muito bem o que estou tentando realizar.Em qualquer momento onBeforeUnload é acionado (portanto, quando um link é clicado), o fundo da página fica azul.Ao usar attachEvent Eu posso facilmente return false para evitar que isso aconteça.Mas ao adicionar o evento click do link com addEventListener, a instrução return não faz nenhuma diferença.Mais ou menos, gostaria que o link 4 se comportasse como o link 2.

Sim, mudar de links para botões seria uma solução.Alterar a funcionalidade onBeforeUnload (como ter esse código como parte da funcionalidade de clique) seria outra.Mas, infelizmente, não tenho controle desses trechos de código.

Então.Existe alguma maneira de interromper eventos de clique em links do gatilho onBeforeUnload quando configurado com addEventListener?Ou a MS removeu essa possibilidade ao migrar de attachEvent para addEventListener, porque geralmente é uma má ideia impedir que os usuários saiam de uma página?

Foi útil?

Solução

Ao usar addEventListener você pode adicionar um parâmetro à sua função de ouvinte.
O parâmetro conterá o evento que é disparado (você pode parar isso)
Usar event.preventDefault() assumindo que o parâmetro é chamado de evento.

Veja isso jsFiddle como um exemplo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top