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.
[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 !
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?
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 jogar tudo na pagina que é carregada. Se vc descobrir como avisa aê.
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.
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…
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.
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 < ini && pos_src >=0){//Se encontrou um "src" 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("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
// Adiciona o arquivo de script ao objeto que sera adicionado ao documento
objScript.src = codigo;
}else{//Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script
// Procura o final do script
fim = texto.indexOf('</script>', 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 <script
ini = texto.indexOf('<script', fim);
//Limpa o objeto de script
objScript = null;
}