BlogBlogs.Com.Br

Desenvolvimento, Novidades, Portfólio, Tutorial » Como chamar um Javascript externo dentro de um js tipo include

28 de novembro de 2008 por Leo Caseiro

Eu sempre tentei fazer uma chamada de um arquivo Java Script externo dentro de outro. E sempre tive problemas.

Estava fazendo manutenção em um código, quando me deparei com o código do analytics. E percebi que o Google faz isso a décadas.

Se você, como eu, ainda não sabe(sabia) como fazer isso, veja:

<script type="text/javascript">
document.write(unescape("%3Cscript src='nomedoarquivo.js' type='text/javascript'%3E%3C/script%3E"));
</script>


É simples e funcional. Nunca mais eu farei algo concatenando strings com strings, como:

<script type="text/javascript">
document.write('<scr '+ 'IPT type="text/javascript" SRC="arquivo.js">< /SCRIPT>');
</scr></script>

Fui super contente avisar meu colega de trabalho pelo MSN, o Pedro Rogério que me mostrou uma outra forma. É um pouco mais complexa, utiliza o createElement por DOM. E pode funcionar melhor para scripts dinâmicos.

<script type="text/javascript">
function include(file_path){
var j = document.createElement("script"); /* criando um elemento script: </script><script></script> */
j.type = "text/javascript"; /* informando o type como text/javacript: <script type="text/javascript"></script>*/
j.src = file_path; /* Inserindo um src com o valor do parâmetro file_path: <script type="javascript" src="+file_path+"></script>*/
document.body.appendChild(j); /* Inserindo o seu elemento(no caso o j) como filho(child) do  BODY: <html><body><script type="javascript" src="+file_path+"></script></body></html> */
}

//incluindo um arquivo com a função include()
include("arquivo.js");

function include_once(file_path) {
var sc = document.getElementsByTagName("script");
for (var x in sc)
if (sc[x].src != null &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; sc[x].src.indexOf(file_path) != -1) return;
include(file_path);
}
//incluindo um arquivo com a função include_once()
include_once("arquivo.js");

Gostou do Post? Assine o Feed Assine o Feed RSS


Tags: ,

8 Comentários para “Como chamar um Javascript externo dentro de um js tipo include”

  1. Leo Caseiro disse:

    @Paulo, se você utilizar a função include feita por DOM é bem parecida sim. Você pode utilizar a função include ou a função include_once.

    Leo Caseiro postou em seu blog: Tudo sobre utilizar Permalinks no WordPress

  2. Paulo disse:

    Este recurso é como o include do PHP?
    ex.:

  3. Leo Caseiro disse:

    Pelo visto, todo mundo utiliza o método dinâmico por DOM!

  4. Micael disse:

    O bom da forma utilizando o DOM é por que além de mais rápido, dificilmente dará problemas em outros browsers.

    Passei a usar o DOM direto devido a problema de criar elementos utilizando o document.write ou o innerHTML, além de velocidade.

    Um abraço

  5. Igor disse:

    aahhaa…
    sempre usei a maneira mais complexa…kkkkk
    essa do google é show de bola…vou testar aqui :D

  6. Leo Caseiro disse:

    @Tiago, o appendChild serve para informar via DOM que o elemento(nó script) deverá ser criado no filho do nó body(no exemplo).
    Deixei comentado agora o código. Veja se consegue entender.
    Qualquer dúvida, pergunta novamente!
    Abs

  7. Show de bola essas funções! Até conhecia uma do El Micox, mas não funcionou em uns jobs. Uma dúvida, para que serve o appendChild?

Comentar