Estou fazendo uma biblioteca que inclui funções Javascript a serem executadas, mas ao que parece a diferença de comportamento dos navegadores (IE e Firefox principalmente), me causa problemas não muito triviais.
O caso é a ordem de execução (disparo) dos eventos relacionados aos campos de um formulário HTML.
Fiz um teste com o seguinte HTML e o resultado foi assim. Executei a seguinte seqüência de eventos:
Clique com o mouse sobre o campo
Digitei o número 1
Clique com o mouse fora do campo
Os navegadores executem os eventos BLUR/CHANGE em ordem inversa, comportamento que pode dar um resultado inesperado para o meu sistema, dependendo do navegador.
O problema maior é que, nesta biblioteca que estou criando, posso adicionar funções Javascript para tratamento dos campos como, por exemplo, formatação. Trabalhar com navegadores diferentes vai me causar problemas, pois posso lidar com valores diferentes dependendo do navegador, pois ele pode executar um tratamento do valor antes ou depois de ele ter sido formatado. Que lástima!
Destro, você vive sendo atormentado, mas você sabe BEM que o problema é o Firefox porque o IE é maravilhoso!
Bem, quebrei a cabeça aqui e pensei no seguinte, já que o problema é que os eventos change e blur são invertidos de preferência em cada browser, pois algum dos dois não implementou W3C direito, pensei em fazer uma gambi, um workaround ou um POG. Se ele não estiver perfeito você pelo menos tem uma luz.
O que fiz foi inverter a ação do change e do blur quando é detectada a utilização do Firefox no momento do evento blur quando o input possui também o change.
A minha dúvida é se isso não pode dar pau em outros momentos, mas isso aí já é uma luz.
Destro, acredito não haver solução para seu problema.
Uma coisa que talvez possa ser realizada é um mapeamento dos eventos e suas seqüências e implementar alguma lógica que faça com que os eventos sejam sempre chamados na seqüência definida.