Aunque la solución de Isabel es buena, puede fallar si se trata de utilizar alguna porción de código presente en el archivo js incluído antes de que el mismo termine de cargarse. Es por eso que prefiero en esos casos usar algo así:
Código PHP:
<script type="text/javascript">
function getScript(url,callback){
var js = document.createElement('script');
js.src = url;
if(callback){
if(js.addEventListener){
js.addEventListener('load',callback,false);
}else{
js.onreadystatechange=function(){
if(js.readyState=='complete' || js.readyState=='loaded'){
callback();
}
}
}
}
var html = document.documentElement;
html.insertBefore(js, html.lastChild);
}
function callback(){
FB.Canvas.setAutoResize();
}
getScript('https://connect.facebook.net/en_US/all.js#xfbml=1',callback);
</script>
En este ejemplo usamos un objeto que está presente en el archivo externo sólo cuando sabemos que estará disponible. Si lo hacemos de otra manera (depende de la velocidad de carga, pero ocurre la mayoría de las veces) obtendremos un error y el método setAutoResize no se ejecutará.