Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Carregando JavaScript com AJAX

14-10-2007 12:24

Um dos problemas mais comuns quando se usa AJAX é que não é possível rodar código JavaScript dentro do documento carregado.

Esse script abaixo na verdade é uma gambiarra que permite rodar arquivos JavaScript por uma solicitação AJAX.

O script é divido em duas partes, abaixo segue o arquivo AJAX para carregar os links:

<script type="text/javascript"> try{ xmlhttp = new XMLHttpRequest(); } catch(ee){ try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){ try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(E){ xmlhttp = false; } } } function abre(arquivo,metodo){ xmlhttp.open(metodo,arquivo); xmlhttp.onreadystatechange=conteudo xmlhttp.send(null) } function conteudo() { document.getElementById('conteudo').innerHTML="carregando..." if (xmlhttp.readyState==4){ document.getElementById('conteudo').innerHTML=xmlhttp.responseText } } </script> <div id="conteudo"></div> <a href="javascript: abre('direciona.php?arquivo=documento.php','GET');">abre</a>

Note que o link não abre o alvo ( documento.php ) diretamente.

Ele primeiro abre o direciona.php, que é o arquivo que vai abrir o documento.php

Agora veja o código do direciona.php

<html> <head> <style type="text/css"> body{ overflow:auto; overflow-x:hidden; } </style> </head> <body leftmargin="0" topmargin="0"> <iframe style="width:400px; height:400px;" src="<?php echo $_GET['arquivo']; ?>" frameborder="no"></iframe> </body> </html>

Resumindo, o direciona.php na verdade abre um iframe com o documento solicitado, isso faz com que carregue qualquer JavaScript via AJAX, já que estamos usando intermediário.
1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado