Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brcontainer

atribuir onerror a tag script dinamicamente

Recommended Posts

criei uma função que chama um javascrpit dinamicamente usei

setAttribute("onerror","alert('erro')")
para acaso ocorra erro na conexão ele informe ao usuario o erro tipo: falha ao carregar.

Porem o IE6 parece não suportar onerror na tag script.

 

ae tentei applicar o seguinte:

function addEvent(object, evType, func, useCapture)
{
	if(object.addEventListener){
		object.addEventListener(evType, func, useCapture);
	} else
	if(object.attachEvent){
		object.attachEvent("on" + evType, func);
	}
}

function chamascript(url){
		 var ssss = document.createElement('script');  
		 ssss.setAttribute('src',url);
		 addEvent(ssss, "error", function(){ alert("erro"); }, false);
		 document.body.appendChild(sssss);
}

Bem alguem tem alguma solução para o atributo ONERROR no IE6, nem prescisar ser relamente ONERROR e sim talvez alguma gambiarra que simule ou algo do genero ;)

porem não consegui nenhum

Compartilhar este post


Link para o post
Compartilhar em outros sites

function include(arquivo){
		//By Micox - http://elmicox.blogspot.com
	   var novo = document.createElement('script');
	   novo.setAttribute('type', 'text/javascript');
	   novo.setAttribute('src', arquivo);
	   document.getElementsByTagName('body')[0].appendChild(novo);
	   //apos a linha acima o navegador inicia o carregamento do arquivo
	   //portanto aguarde um pouco até o navegador baixá-lo. :)
}

 

e se você carregar esse erro em um arquivo javascript externo

 

será que daria certo?

 

http://webbugtrack.blogspot.com/2007/08/bu...lways-work.html

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem vamos ver se eu consigo explicar

imagine que a conexão "caia" ou tenhamos alguma falha na leitura do arquivo

ae eu tenho de alertar ao usuario.

 

bem quanto ao link que foi passado o problema é este:

on*: Inline events can not be set in IE, attach event handlers instead

bem o que eu gostaria é alguma gambiarra ou algo que simule nem prescisa ser com o atributo ONERROR

queria algo que simula-se isso

falow abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

será que setando um timeout de resposta num funcione!

 

setTimeout("alert('erro', 1000 * 30");

ai com jquery você faz um before load

 

algo do genero

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com a ajuda do Gutto percebi que havia me esquecido de algo

window.onerror funciona constantemente ae apliquei assim:

 

<script>
function chamascript(url){
		 var ssss = document.createElement('script');  
		 ssss.setAttribute('src',url);
		 document.body.appendChild(sssss);
}

window.onerror = function (){
alert("erro");
}
</script>

<a href="java script:chamascript('url.js')">link-me</a>
[atualizado]

Agora que vi o erro que retirnava era outro ainda não deu certo no IE6, se alguem tiver uma solução

Compartilhar este post


Link para o post
Compartilhar em outros sites

A tag script não possui eventHandlers ... se os outros browsers reconhecem está ótimo. O problema é só com o IE, então aproveita e tenta usar um "recurso" só do IE:

 

<script for="window" event="onerror()" defer>

// ...

</script>

PS.: Nunca testei, mas pode vir a funcionar. O IE sempre surpreende mesmo ... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro que apresenta no IE6 Guilherme?

Esse é justamente o problema Gutto, o IE6 não retorna erro nenhum, quando o arquivo não é encontrado no FF (em outros navegadores tambem) o onerror="" ou window.onerror= reagem acusando alguma falha, mas o IE6 não reconhece nada, simplismente fica lá sem saber se deu erro ou não. =/

 

A tag script não possui eventHandlers ... se os outros browsers reconhecem está ótimo. O problema é só com o IE, então aproveita e tenta usar um "recurso" só do IE:

 

<script for="window" event="onerror()" defer>

// ...

</script>

 

PS.: Nunca testei, mas pode vir a funcionar. O IE sempre surpreende mesmo ...

Eu tentei aplicar ao setAttribute estes atributos mas sem resultado. =/

------------

tambem fiz o seguinte:

ssss.onreadystate= function(){
alert(this.readystate);
}
para verficar o estado dele, porem ocorre o seguinte, loading e depois loaded(equivale ao complete) como se tive-se carregado normalmente =/

final das contas ainda não obtive sucesso

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.