Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Alguém sabe por que o método setAttribute não funciona no IE?
<html> <head><title>Teste</title></head> <script language="javascript"> function xola() { alert('EDITADO'); //NÃO USE PALAVRAS DE BAIXO CALÃO NO FÓRUM! } </script> <body onLoad="javascript:document.getElementById('xola').setAttribute('onClick','xola();')"> <input id="xola" type="button" value="aeee"></input> </body></html>este html funcona perfeitamente no FF e no IE nada .....
agradeço qualquer ajuda!
[]'s
Bahhh pior que eu já procurei isso em vários lugares e nada, ninguém sabe me explicar a causa, motivo, razão ou circunstância?[]'s
Não use setAttibute para adicionar um evento.. Para eventos, use addEventListener(), para firefox e attachEvent(), para IE.. ;)
Boa Lex!!!
Era isso mesmo!
<html> <head><title>Teste</title></head> <script language="javascript"> function xola() { alert( navigator.appName ); } // Função chamanda no onLoad do documento HTML function atribuiEvento() { // Verifica o tipo do navegador para fazer a distinção da chamada da // função que atribui o evento em tempo de execução if( navigator.appName == "Microsoft Internet Explorer" ) { alert("entrou"); document.getElementById("xola").attachEvent("onclick",xola); alert("Atribuido"); } else { alert("entrou"); document.getElementById("xola").addEventListener("click",xola,true); alert("Atribuido"); } } </script> <body onLoad="atribuiEvento();"> <form id="teste"> <input id="xola" type="button" value="aeee"></input> </form> </body></html>
Obrigado!
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Não tem algum jeito de burlar isso?.. uma mesma função para os 2 navegadores?
Olá Adriano!Primeiramente desculpe pelo palavrão hehehe! esqueci de alterar do meu código de teste!Mas a questão é a seguinte: Este código é apenasa um teste, de uma coisa um pouco mais complexa, que utiliza o método setAttribute. Verifiquei nos padrões W3C e não há diferença para ambos os navegadores no modo de utilizar esse método e que o suporte do IE para o mesmo vem desde a versão 4 (ou será 5? que seja).Como eu disse não preciso criar nenhum controle dinamicamente, apenas atribuir um atributo, no caso, um evento em tempo de execução.Volto a dizer que tanto nesse simples exemplo quanto no meu programa roda perfeitamente no Fire Fox e no IE o atributo fica a ver navios.obrigado!