Como chamar um Javascript externo dentro de um js tipo include

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");

21 ideias sobre “Como chamar um Javascript externo dentro de um js tipo include

  1. // esta função permite que executemos
    // outras funções de outros arquivos js:

    function minha_funcao() {

    (function() {
    var script = document.createElement(‘script’);
    script.type = ‘text/javascript’;
    script.src = ‘outro_arquivo.js’;

    document.getElementsByTagName(‘head’)[0].appendChild(script);
    })();

    // depois daqui é só chamar o método desejado
    // (que está dentro de outro_arquivo.js)
    // Exemplo:

    valida_cpf(‘123456789012’); // que está lá no outro arquivo

    }

  2. Não entendi.
    Por exemplo. Tenho um arquivo Jquery.js, com a biblioteca do jquery.
    E tenho outro arquivo chamado home.js. Query utilizar o Jquery dentro do arquivo home.js, como importo o Jquery.js para dentro do home.js?

    • David, basta inserir no header do seu codigo os 2 arquivos. O ideal é colocar o jQuery acima do seu script. Caso insira uma chamada ready não é necessário colocar acima.
      Exemplo:

      $().ready(function() { … }

      Por exemplo:

      <script src="jquery.js"></script>
      <script src="home.js"></script>

  3. Leo como você fez para adicionar a opção de logar com o facebook no intensedebate?

    É que não estou conseguindo fazer isso. Ele pede uma key direcionando para uma página do Facebook que não existe.

    Como você fez?

    Obrigado!

    • Eu tenho uma forma bem melhor que eu costumo usar atraves de jquery

      function myInclude(script_)
      //include javascript
      //script_ = arquivo .js a ser incluido
      {
      $("head").append("<script language='JavaScript' type='text/javascript' src='"+script_+"'></script>");
      }

      simples e direto. valeu

    • Jonny, o segundo exemplo é uma function que você deve inserir em algum de seus JavaScripts.

      Criando assim a funcão include(); Da mesma maneira que você costuma criar outras funções.

      Aí você insere o comando abaixo onde precisar inserir o javascript: abaixo dentro de uma tag script
      include('nome-do-arquivo.js');

  4. Boa noite!

    Achei seus post muito interessante.

    muito util

    porem nao entendi

    "&amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp; "

    porquer usar "&amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;" ao inves de "&&"

    se eu colocar apenas "&&" não funciona?

  5. 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

  6. @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

Deixe uma resposta