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; sc[x].src.indexOf(file_path) != -1) return;
include(file_path);
}
//incluindo um arquivo com a função include_once()
include_once("arquivo.js");
Artigos Relacionados:
eu tbm sempre fico contatenando ae ai fiquei surpreso com esse post a forma do include do seu amigo arrebento valeu
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
Muito bom a explicação, estava com um problemão para chamar java externo. Mas o segundo exemplo é mesmo complexo, não entendi
My recent post comprovações reais e definitivas que é possível ganhar dinheiro na internet
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');
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; "
porquer usar "&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?
Não tenho certeza! Mas acredito que não funcione mesmo!
O ideal é utilizar essa função do tipo include!
E se usar jQuery, pode usar também o jQuery.getScript()
Abs
@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
Este recurso é como o include do PHP?
ex.:
Pelo visto, todo mundo utiliza o método dinâmico por DOM!
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
Valeu
aahhaa…
sempre usei a maneira mais complexa…kkkkk
essa do google é show de bola…vou testar aqui
@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
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?