Tengo una función JS que ocasionalmente se puede usar en algunas páginas. Depende de otro archivo JS (swfObject.js), pero me gustaría evitar tener que incluir este archivo por todas partes, ya que es una solicitud desaprovechada la mayor parte del tiempo.¿Usar javascript para inyectar referencias de scripts según sea necesario?
En su lugar, me gustaría crear una función genérica que pueda inyectar una referencia de script en la página DOM según sea necesario, por lo que si se llama a esta función, buscaría la secuencia de comandos y, si no existe, cargará en.
Estoy bastante seguro de que esto es posible (y no voy a usar document.write), pero antes de aventurarme en territorio inexplorado, alguien lo ha hecho antes, y si es así, cualquier apuntador ?
EDIT: Ok, lo intenté, y funciona en IE6 y FF, todavía no he probado otros navegadores.
Aquí está mi código (Rev 2.0, ahora con devoluciones de llamada opcional):
function loadJSInclude(scriptPath, callback)
{
var scriptNode = document.createElement('SCRIPT');
scriptNode.type = 'text/javascript';
scriptNode.src = scriptPath;
var headNode = document.getElementsByTagName('HEAD');
if (headNode[0] != null)
headNode[0].appendChild(scriptNode);
if (callback != null)
{
scriptNode.onreadystagechange = callback;
scriptNode.onload = callback;
}
}
y en el método con una dependencia:
var callbackMethod = function()
{
// Code to do after loading swfObject
}
// Include SWFObject if its needed
if (typeof(SWFObject) == 'undefined')
loadJSInclude('/js/swfObject.js', callbackMethod);
else
calbackMethod();
¿Alguna sugerencia?
No entiendo por qué esto es necesario - una vez que ha sido solicitado para cualquier página de su sitio web/aplicación, se almacena en caché en su mayoría probablemente de todos modos, entonces realmente no está lastimando nada. Parece mucho esfuerzo extra por tan poco a cambio. –
Jason, tenemos cientos de archivos donde podría usarse este fragmento, por lo que preferiría tener la capacidad de hacerlo en el cliente (a través de nuestro sistema CMS) en lugar de tener que reconstruir el sitio para agregar la referencia del script en el Archivo .CS – FlySwat