Usando una lista de scripts

El tema de las tan mentadas mudanzas y los alojamientos inconstantes me provocó varios dolores de cabeza. Es que, dada la forma en que hago las cosas, no se trataba sólo de reubicar archivos y modificar los enlaces. Muchísimas entradas tienen scripts individuales que son los que uso como modelo o ejemplo para tal o cual cosa. No podrían agregarse a la plantilla porque lo único que se conseguiría es un volumen inmanejable de códigos que no son de uso corriente sino eventual, sólo se ejecutan en una entrada en particular. Para estos casos, no hay más remedio que usar archivos externos.

Cambiarlos de un sitio a otro es tedioso pero a esto le sumamos un segundo inconveniente, hay que editar esas entradas individuales y volverlas a publicar ¡Sólo encontrarlas ya es un problema!!!

Comencé a hacerlo y decidí detenerme porque pensé: "Ahora lo hago ¿y la próxima vez?" Ya van tres veces, esta debe ser la última.

Entonces, se me ocurrió que lo mejor era ... usar otro script ... combatir fuego con fuego sonrisa

La idea era esta. En lugar de tener que escribir algo como:
<script src="http://.../unScript.js"></script>
Tal vez fuera posible tener alguna clase de lista o índice y una fucnión que escribiera automáticamente el código ese en una entrada, diciéndole algo así como aquí va el script número 24. De esa manera, no habría que modificar jamás el post, bastaría cambiar esa lista.

Al grano. Lo que hice fue agregar un elemento HTML al inicio de la plantilla en esa sección especial que alguna vez comenté:
<b:section class='contenedorScripts' id='contenedorScripts'/>
Y allí coloco la función:
<script type="text/javascript">
function leerScript(cual) {
scriptLISTA=new Array(
// esta es la lista con las direcciones URL de los diferentes scripts en uso
0,"", // no lo uso
1,"http://.../unScript.js",
2,"http://.../otroScript.txt",
.......
49,"http://.../cualquierScript.txt"
);
regNum = cual * 2 +1;
document.write('<script src="' + scriptLISTA[regNum] + '"><\/script>');
}
</script>
Cada uno tiene la misma estructura: un número de orden correlativo, una coma y la dirección URL entre comillas. Terminan todas con una coma excepto la última que no debe tenerla.

En las entradas o donde se nos ocurra, podemos cargar el script de este modo:
<script>leerScript(unNumero);</script>
así que:
<script>leerScript(49);</script>
cargará el script que está alojado en http://.../cualquierScript.txt

De esta forma, si el archivo es modificado, ya sea en su contenido o en su ubicación, basta modificar la lista para que siga funcionando.

Una variante es la que me propuso Nico, en lugar de utilizar un array con una lista correlativa idenficada con números, usar variables con un nombre exclusivo, algo que puede ser útil si se trata de algunos pocos scripts. Por ejemplo:
<script type="text/javascript">
// primero definimos los nombres
var animcollapse = "http://.../unScript.js";
var emoticones = "http://.../otroScript.txt";

// luego la función
function leerScript(cual) {
document.write('<script src="' + cual + '"><\/script>');
}
</script>
Y si quisiéramos usar el script de emoticones, lo cargaríamos así:
<script>leerScript(emoticones);</script>
Sea cual sea el método, debe tenerse en cuenta que la función siempre debe estar antes que su llamada porque sino, no funcionará.

0 comentarios:

Publicar un comentario