Problema com AJAX + import js

Fala galera…

Estou chamando uma página por ajax e colocando seu conteúdo em um DIV. Dentro da página que estou chamando faço o import de alguns arquivos js. O problema é que não está sendo executado este import.

Alguém já passou por este problema? Não queria colocar todos os imports na página que fez a requisição por ajax.

Atenciosamente,
Marcelo Madeira

Essa é uma das maneiras de carregar arquivos de script:


<SCRIPT language="JavaScript" src="js/funcoes.js"></SCRIPT>

juliano… meu problema não é esse.

Nas páginas chamadas via AJAX não está sendo executado ESTES imports

alguma outra solução?

uma idéia seria você colocar tudo de um JS só…

pois eu já tentei fazer isso que você falou e não consegui também…acho que é pq o HTML carrega os scripts em tempo de carregamento da página…

[quote=julianostr]Essa é uma das maneiras de carregar arquivos de script:

[code]

[/code][/quote]é importante dizer qual o type do script tem alguns browsers que interpretam mais de um tipo de script entao use a type=‘text/javascript’ e se quiser ficar de acordo com a W3C use a tag em script toda em minusculo. vc deve lembrar outra coisa quando vc manipula a página usando AJAX entao o que vai valer são as imports feitas na página mestre.

marcelo_mococa acho q ja tive problemas cm isso tb.
Deixa eu ver se é a mesma coisa, apenas confirme para mim.
Vc quer executar um codico JS na pagina que recebe a requesição ajax ?certo !

mais ou menos… executar as funções eu consegui.

Recuperei todas as tags script da página e executei o conteúdo das tags (usando eval(xxx) ).

Gostaria mesmo é de importar os js na página.
Alguém sabe porque acontece isso? O browser não executa nada referente a javascript em páginas carregadas por ajax?

Eu tambem estou com o mesmo problema.

Depois que uma pagina é carregada atravez do ajax, os codigos js dentro da pagina não executão.

Alguem pode me ajudar, estou realmente precisando solucionar este problema.

Fala Marcelo, fiz o fj-21 com vc na caelum ano passado. Cara eu tive o mesmo problema e realmente não consegui dar esses imports não. A solução foi a que vc nao queria :slight_smile: jogar tudo na pagina que é carregada. Se vc descobrir como avisa aê.

Alberto

Galera,

Alguem tem alguma solução para esse problema. Ja tentei usar umas soluções como criar a tag script via javascript e adicionar a pagina dinamicamente, mas mesmo assim nao consegui carrega-lo.

Alberto

a treta eh a seguinte…os imports são efetuados quando a pagina eh montada pela primeira vez…

deve ter alguma coisa errada nas suas chamadas AJAX, e a forma como o retorno esta sendo montado…se eu nao me engano, dentro do DIV q foi atualizado na chamada AJAX, vc nao vai conseguir executar funções contidas nos .js declarados no inicio da pagina…

eu tive um problema parecido, mo zica…se a função q vc esta tentando executar for isolada(não depender de nenhuma outra), tente coloca-la direto na pagina, soh pra teste…

flw

Pessoal, desenvolvi uma função Javascript chamada “doScript”. Com ela, após exibir o conteúdo carregado por AJAX (em uma div por exemplo), é só chamar essa função passando o mesmo conteúdo.

Exemplo:
document.getElementById(“minhaDiv”).innerHTML = ajax.responseText;
doScript(ajax.responseText);

Veja um exemplo funcionando: http://www.acheimeuauto.com/estudos/doScript/

Se quiser, deixei disponível para download os arquivos do exemplo acima: http://www.acheimeuauto.com/estudos/doScript/esemplo_doScript.zip

Se não conseguir, é só falar…

Espero que ajude!

Ps. Esqueci… :?

Segue o conteúdo da função:

function doScript(texto){
var ini, pos_src, fim, codigo;
var objScript = null;
ini = texto.indexOf(’<script’, 0);
while (ini!=-1){
var objScript = document.createElement(“script”);
//Busca se tem algum src a partir do inicio do script
pos_src = texto.indexOf(’ src’, ini)
ini = texto.indexOf(’>’, ini) + 1;

    //Verifica se este e um bloco de script ou include para um arquivo de scripts
    if (pos_src &lt; ini && pos_src &gt;=0){//Se encontrou um &quot;src&quot; dentro da tag script, esta e um include de um arquivo script
        //Marca como sendo o inicio do nome do arquivo para depois do src
        ini = pos_src + 4;
        //Procura pelo ponto do nome da extencao do arquivo e marca para depois dele
        fim = texto.indexOf('.', ini)+4;
        //Pega o nome do arquivo
        codigo = texto.substring(ini,fim);
        //Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano
        codigo = codigo.replace(&quot;=&quot;,&quot;&quot;).replace(&quot; &quot;,&quot;&quot;).replace(&quot;\&quot;&quot;,&quot;&quot;).replace(&quot;\&quot;&quot;,&quot;&quot;).replace(&quot;\'&quot;,&quot;&quot;).replace(&quot;\'&quot;,&quot;&quot;).replace(&quot;&gt;&quot;,&quot;&quot;);
        // Adiciona o arquivo de script ao objeto que sera adicionado ao documento
        objScript.src = codigo;
    }else{//Se nao encontrou um &quot;src&quot; dentro da tag script, esta e um bloco de codigo script
        // Procura o final do script
        fim = texto.indexOf('&lt;/script&gt;', ini);
        // Extrai apenas o script
        codigo = texto.substring(ini,fim);
        // Adiciona o bloco de script ao objeto que sera adicionado ao documento
        objScript.text = codigo;
    }

    //Adiciona o script ao documento
    document.body.appendChild(objScript);
    // Procura a proxima tag de &lt;script
    ini = texto.indexOf('&lt;script', fim);

    //Limpa o objeto de script
    objScript = null;
}

}>