Ir para conteúdo

POWERED BY:

Arquivado

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

JCSPADER

getElementsByTagName Erro no IE

Recommended Posts

Preciso de um help, essa função funciona no FF mas naum no IE.

 

function ExecuteScript(retorno)
{
	var divscript = document.getElementById('divscript');
	if (!divscript)
	{
		var tagBody 	= document.getElementsByTagName('body').item(0);			
		var divscript	= document.createElement('div');
		divscript.setAttribute('id','divscript');			
		tagBody.insertBefore(divscript, tagBody.firstChild);
	}
	
	divscript.innerHTML = retorno;
	var script = divscript.getElementsByTagName('script').item(0);
	alert(script.innerHTML);
	divscript.parentNode.removeChild(divscript);	
}

onde 'retorno' é igual a:

<script>
	var janelapopup = window.open('menu.php','','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,widt
h=800,height=600');
	if(!janelapopup)
	{
		alert('A janela foi bloqueada!!!\nDesative o bloqueador de POP-UP e tente novamente.');
	}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no javascript para determinar um elemento em um array se usa colchetes "[]" e não parenteses

tenta alterar nas linhas

 

var tagBody  = document.getElementsByTagName('body').item(0); 
e
var script = divscript.getElementsByTagName('script').item(0);

Compartilhar este post


Link para o post
Compartilhar em outros sites

no javascript para determinar um elemento em um array se usa colchetes "[]" e não parenteses

tenta alterar nas linhas

 

var tagBody  = document.getElementsByTagName('body').item(0); 
e
var script = divscript.getElementsByTagName('script').item(0);

 

eu jah tentei...

 

mas mesmo assim naum funcionou!

 

:mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta agora

 

function ExecuteScript(retorno)
{
	var divscript1 = document.getElementById('divscript');
	if (!divscript1)
	{
		var tagBody	 = document.getElementsByTagName('body').item(0);			
		var divscript	= document.createElement('div');
		divscript.setAttribute('id','divscript');			
		tagBody.appendChild(divscript);
		
	}
	
	divscript.innerHTML = retorno;
	var script = divscript.getElementsByTagName('script').item(0);
	alert(script.innerHTML);
	divscript.parentNode.removeChild(divscript);   
}

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta agora

 

function ExecuteScript(retorno)
{
	var divscript1 = document.getElementById('divscript');
	if (!divscript1)
	{
		var tagBody	 = document.getElementsByTagName('body').item(0);			
		var divscript	= document.createElement('div');
		divscript.setAttribute('id','divscript');			
		tagBody.appendChild(divscript);
		
	}
	
	divscript.innerHTML = retorno;
	var script = divscript.getElementsByTagName('script').item(0);
	alert(script.innerHTML);
	divscript.parentNode.removeChild(divscript);   
}

Abraços...

Ele retorna erro...

Da 'Objeto Necessario'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei aki no meu FF e foi de boa... no IE a treta é nessa parte aki:

Vou comentar ela pra você entender:

 

// Aki ta beleza, basta você passar o parametro "retorno" corretamente
divscript.innerHTML = retorno;

// Aki ta a treta, como ele vai pegar a tag "script" se você NAO A CRIOU e a colocou dentro da div "divscript" ????
var script = divscript.getElementsByTagName('script').item(0);

alert(script.innerHTML);
divscript.parentNode.removeChild(divscript);

Esse é o problema...

 

Comente essa linha que você verá que o erro nao vai rolar..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei aki no meu FF e foi de boa... no IE a treta é nessa parte aki:

Vou comentar ela pra você entender:

 

// Aki ta beleza, basta você passar o parametro "retorno" corretamente
divscript.innerHTML = retorno;

// Aki ta a treta, como ele vai pegar a tag "script" se você NAO A CRIOU e a colocou dentro da div "divscript" ????
var script = divscript.getElementsByTagName('script').item(0);

alert(script.innerHTML);
divscript.parentNode.removeChild(divscript);

Esse é o problema...

 

Comente essa linha que você verá que o erro nao vai rolar..

 

Abraços...

 

Ai que tah o detalhe

O valor de divscript.innerHTML, é o retorno,

sendo que o valor do retorno é esse ai embaixo:

 

<script>
	var janelapopup = window.open('menu.php','','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,widt
h=800,height=600');
	if(!janelapopup)
	{
		alert('A janela foi bloqueada!!!\nDesative o bloqueador de POP-UP e tente novamente.');
	}
</script>

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.