Não há importação / inclusão / exigência em javascript, mas existem duas maneiras principais de conseguir o que você deseja:
1 - Você pode carregá-lo com uma chamada AJAX e usar eval.
Essa é a maneira mais direta, mas está limitada ao seu domínio devido às configurações de segurança do Javascript, e o uso do eval está abrindo as portas para bugs e hacks.
2 - Adicione uma tag de script com a URL do script no HTML.
Definitivamente o melhor caminho a percorrer. Você pode carregar o script mesmo de um servidor externo e ele fica limpo quando você usa o analisador de navegador para avaliar o código. Você pode colocar a tag no cabeçalho da página da web ou na parte inferior do corpo.
Ambas as soluções são discutidas e ilustradas aqui.
Agora, há um grande problema que você deve conhecer. Isso implica que você carrega o código remotamente. Navegadores modernos carregam o arquivo e continuam executando o script atual, porque carregam tudo de forma assíncrona para melhorar o desempenho.
Isso significa que, se você usar esses truques diretamente, não poderá usar seu código recém-carregado na próxima linha depois de solicitar que ele seja carregado, porque ainda estará carregando.
EG: my_lovely_script.js contém MySuperObject
var js = document.createElement("script");
js.type = "text/javascript";
js.src = jsFilePath;
document.body.appendChild(js);
var s = new MySuperObject();
Error : MySuperObject is undefined
Então você recarrega a página pressionando F5. E funciona! Confuso ...
Então o que fazer sobre isso ?
Bem, você pode usar o hack que o autor sugere no link que eu lhe dei. Em resumo, para pessoas com pressa, ele usa en event para executar uma função de retorno de chamada quando o script é carregado. Assim, você pode colocar todo o código usando a biblioteca remota na função de retorno de chamada. POR EXEMPLO :
function loadScript(url, callback)
{
// adding the script tag to the head as suggested before
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
// then bind the event to the callback function
// there are several events for cross browser compatibility
script.onreadystatechange = callback;
script.onload = callback;
// fire the loading
head.appendChild(script);
}
Em seguida, você escreve o código que deseja usar APÓS o script ser carregado em uma função lambda:
var myPrettyCode = function() {
// here, do what ever you want
};
Então você executa tudo isso:
loadScript("my_lovely_script.js", myPrettyCode);
OK, entendi. Mas é uma dor escrever todas essas coisas.
Bem, nesse caso, você pode usar como sempre a fantástica estrutura gratuita do jQuery, que permite fazer a mesma coisa em uma linha:
$.getScript("my_lovely_script.js", function() {
alert("Script loaded and executed.");
// here you can use anything you defined in the loaded script
});