Ir para conteúdo

POWERED BY:

Arquivado

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

Hélcio Macedo

Executar JS dentro de div chamada por Ajax

Recommended Posts

Olha eu aqui denovo!! rsrsrs

 

Estou buscando a melhor forma de passar meu painel de controle de iFrame para Ajax..

Masss.. soh tenho dor de cabeça..

 

Aí achei essa função: http://forum.imasters.com.br/index.php?/topic/172859-resolvido%26nbsp%3Bdica-funcao-rapida-pra-ajax/

 

Feita pelo Micox junto com o SkyWalker

 

Ela está chamando normalmente.. mas não está funcionando os JS da página..

 

existe alguma função melhor ou algo que faça ela funcionar??

 

 

Estou chamando a pagina por:

 

<a onclick='ajaxGet("form_beta.php",document.getElementById("main"),true)'>beta</a>

na header adicionei:

<script type="text/javascript" language="javascript" src="js_beta/ajax.js"></script>

<script type="text/javascript">
function pergunta(){ 
decisao = confirm('Tem certeza que quer enviar este formulário?');
	if (decisao){
      setarCampos(this);
      enviarForm('processa.php', campos, 'divResposta'); 
      return false; 
	} else { 
	document.getElementById('divResposta').innerHTML = '<div style="background-color:#FFD9D9" align="center"><b>ERRO:</b> Operação Cancelada</div>';
	}
} 
</script>
<form action='processa.php' method='post' id='form' name='form' class='niceform'> 
<center>
				<fieldset>
				<legend><strong>Excluir Conta</strong></legend>
				
		<dl>
			<dt style='width: 100px; text-align:left'><label for='account'>Account:</label></dt>
			<dd style='width: 300px; text-align:left'><input name='account' id='account' type='text' size='32'></dd>
		</dl>

		<dl>
			<dt style='width: 100px; text-align:left'><label for='senha'>Sua Senha:</label></dt>
			<dd style='width: 300px; text-align:left'><input name='senha' id='senha' type='password' size='32'></dd>
		</dl>
		<dl id='divResultado' style='text-align:left'/>
				</fieldset>

<fieldset class='action' align='middle'>
<input type='button' id='enviar' name='enviar' value='Excluir' onClick='pergunta()'></fieldset>
</center>
</form>
<script>
function setarCampos() {
campos = 'account='+encodeURI(document.getElementById('account').value)+'&senha='+encodeURI(document.getElementById('senha').value);
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum... dica 'de amigo':

 

Não faça um painel administrativo baseado em ajax.

 

Só vai te trazer mais dores de cabeça, além de abrir graves brechas de segurança.

 

 

Se quiser continuar nessa frágil estrutura, ainda era melhor que você não deixasse nenhum <script> na página que tá vindo via ajax.

Já deixa todas as functions que você for precisar num arquivo externo, já pre-carregado, com a página 'mãe'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atualmente ele está em iFrame.. mas iframe não está muito ultrapassado?? E mais inseguro??

 

O que você sugere?

 

Eu imaginei que por não ter como acessar a pagina fora do ajax seria mais seguro! õ0

 

E sobre as functions.. eu até pensei em deixar tudo em um include na index.. mas eh mta função pra por e que não vão ser usadas todas juntas.. não ficaria mto pesada a index se eu colocar todas as funções do painel nela?

 

 

PS* Consegui fazer ele funcionar perfeitamente!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, eu não uso nem iframe e nem ajax nos meus paineis.

 

a navegação é feita com simples includes.. só isso.

 

Vamos lá, se eu entrar no teu painel com o suporte a javascript do browser desabilitado, oque eu vou ver ?

nada.. ne?!

 

ou então, consigo ver 'tudo'.. já invadi um sistema assim. (meu chefe que pediu, o login era baseado em ajax)

 

<dl id='divResultado' style='text-align:left'/>
ou:

document.getElementById('divResposta')
?

no HTML, você chama de Resultado ai no javascript, procura um Resposta ?

 

e outra, esse HTML está incorreto.

DL não é uma tag de fechamento simples..

 

por não ter como acessar a pagina fora do ajax seria mais seguro!

?

e porque não teria como ? você colocou algum script server-side que barre isso ?

se não colocou, tem como acessar sim.

 

 

no FireFox, aperte

Ctrl + Shif + J

 

vai te mostrar erros de execução javascript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu jah fiz a correção da id da dl ^^

era esse mesmo o erro

 

Eu usei fechamento para não precisar usar </dl> funciona bem quando é para uma dl ou div sem conteúdo.

 

 

E nas paginas internas do painel e de função estou buscando um código para só permitir acesso à partir da index

http://forum.imasters.com.br/index.php?/topic/405691-pagina-abrir-somente-a-partir-da-index/

 

---

 

Eu acessei minha pagina usando o bloqueio a opção de não permitir JavaScript no Firefox e não mostrou nada das informações! =\

 

Eu usei acunetix quando o painel estava em frame para buscar vulnerabilidades..

Sabe se ele vai ser efetivo em Ajax tb?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hélcio, o problema é que você precisa de inserir os scripts carregados desta maneira fazendo um parse no html carregado.

Uma função que pode resolver isto é:

 


_insertScripts: function(xsl) {
		var sfrag = '<script[^>]*>([\\S\\s]*?)<\/script>';
		var matchAll = new RegExp(sfrag, 'img');
		var matchOne = new RegExp(sfrag, 'im');
		if(xsl.match(matchAll)) {
			$.map(xsl.match(matchAll), function(script) {
				eval( (script.match(matchOne) || ['', ''])[1] );
			});
		}
	},

Ela é baseada em prototype ou em algum plugin do jQuery, não me recordo qual. Onde xsl é seu HTML.

Já sobre as falhas de segurança, basta deixar sua regra de negócios dentro do servidor que não há problemas, e é mais seguro.

Mantendo as regras de segurança sempre no servidor você não terá problemas.

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.