Hola!,
Este Script Lee La Informacion De Los Banners Desde Un TXT Y Muestra Uno Aleatoriamente.
Los Datos Que Lee:
URL = Url A La Cual Dirigirse
TARGET= El Target, Si Se Trata De Una Ventana, Frame, De Lo Contrario Ponga "self"
IMG = La Url De La Imagen Del Banner
ALT = Define El Texto Que Quiere Aparesca Cuando Se Ubique El Puntero Del Mouse Sobre El Banner
Primero El Script Luego La Explicacion:
<HTML>
<HEAD>
<TITLE>
JLMNetwork.com - Rotacion Banners Desde Archivos TXT - Por Jorge Luis Martinez
</TITLE>
<SCRIPT LANGUAGE="javascript">
<!--Rotacion Banners Desde Archivos TXT - Por Jorge Luis Martinez//-->
<!--JLMNetwork.com//-->
function mostrarBanner()
{
var maximo = Banners.recordset.recordCount;
var i = 0;
var urlBanner = new Array(maximo);
var imgBanner = new Array(maximo);
var targetBanner = new Array(maximo);
var altBanner = new Array(maximo);
while(!Banners.recordset.eof)
{
urlBanner[I] = new String(Banners.recordset.fields("URL"));
imgBanner[i] = new String(Banners.recordset.fields("IMG"));
targetBanner[i] = new String(Banners.recordset.fields("TARGET" ));
altBanner[i] = new String(Banners.recordset.fields("ALT"));
Banners.recordset.moveNext();
i++;
}
var cual = Math.floor(Math.random() * maximo);
var codigo = '<A HREF="'+urlBanner[cual]+'" TARGET="'+targetBanner[cual]+'"><IMG SRC="'+imgBanner[cual]+'" ALT="'+altBanner[cual]+'" BORDER=0></A>';
banner.innerHTML = codigo;
}
</SCRIPT>
</HEAD>
<BODY>
<SPAN ID="banner">
</SPAN>
<OBJECT ID="Banners" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" ondatasetcomplete="mostrarBanner()">
<PARAM NAME="DataURL" Value="Banners.txt">
<PARAM NAME="UseHeader" Value="true">
<PARAM NAME="FieldDelim" VALUE="|">
</OBJECT>
</BODY>
</HTML>
Y El Archivo Banners.txt Esta Compuesto Asi:
URL|IMG|TARGET|ALT
http://www.google.com/|01.gif|_blank|Visita Google.com
http://www.yahoo.com/|02.gif|self|Visita Yahoo.com
http://www.forosdelweb.com/|03.gif|otra|Visita ForosDelWeb.com
http://www.altavista.com/|04.gif|self|Visita Altavista.com
Como Ven, Utilizo El Separador: "|" Para Separar Los Datos, y El "Enter"(Cada Linea) Para Separar Los Registros.
************************************************** ***********************************************
Bien, Los Parametros De Este Objeto No Creo Sea Necesario Los Explique De Nuevo(Ya Los Habia Explicado En un Post Anterior Puedes Verlo Aqui: <a href='ir.asp?http://www.forosdelweb.com/mensaje.asp?id=67557&r=11' target='_blank'>http://www.forosdelweb.com/mensaje.asp?i...</a>), El Archivo Del Que Obtendremos Los Datos Sera Banners.txt Y El ID De Nuestro objeto En Esta Ocasion Sera Banners.
<OBJECT ID="Banners" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" ondatasetcomplete="mostrarBanner()">
<PARAM NAME="DataURL" Value="Banners.txt" >
<PARAM NAME="UseHeader" Value="true">
<PARAM NAME="FieldDelim" VALUE="|">
</OBJECT>
Pero, Como Se Daran Cuenta Ahora Utilizo Un Metodo de Dicho Objeto, El ondatasetcomplete El Cual Se "Dispara" Cuando Los Datos Estan Cargados Por Completo:
<OBJECT ID="Banners" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" ondatasetcomplete="mostrarBanner()" >
Al Cargarse Los Datos, Se Llama A La Funcion De Javascript mostrarBanner(), Definimos La Funcion:
function mostrarBanner()
{
Creamos Las Variables A Utilizar, La Variable maximo La Cual Nos Informa De Cuantos Registros Disponemos, Para Ello Accesamos A Nuestros Datos(Banners.recordset Y Le Pedimos El Numero De Registros Gracias A La Propiedad recordCount .
var maximo = Banners.recordset.recordCount;
Creamos Una Serie De Arrays En Los Cuales Introduciremos Los Datos Del Archivo, El Tamaño De Dichos Arrays Sera El De La Variable maximo Que Es El # De Registros Que Tenemos En El Archivo:
var urlBanner = new Array(maximo);
var imgBanner = new Array(maximo);
var targetBanner = new Array(maximo);
var altBanner = new Array(maximo);
Variable Contador, Para Ir Asignando Valores A Los Arrays:
var i = 0;
Ahora Empezaremos A Llenar Dichos Arrays Con Informacion Sobre La Url, La Imagen, El Target Y El Alt, Para Ello Le Indicamos Que Mientras No Se Haya Acabado El Archivo (Banners.recordset.eof Nos Devuelve True Si Es El Fin Del Archivo Y False Si No Se Ha Acabado, Anteponiendo El Signo De Negacion "! " Especificamos Que "Mientras No...."):
while(!Banners.recordset.eof)
{
urlBanner[i] = new String(Banners.recordset.fields("URL"));
imgBanner[i] = new String(Banners.recordset.fields("IMG"));
targetBanner[i] = new String(Banners.recordset.fields("TARGET" ));
altBanner = new String(Banners.recordset.fields("ALT"));
Banners.recordset.moveNext();
i++;
}
Ahora Hacemos El Random, Sera Un Numero Entre 0 Y El Maximo De Registros:
var cual = Math.floor(Math.random() * maximo);
Ahora Creamos El Codigo HTML, Osea, El Enlace, El Target, La Imagen Y El Alt De La Imagen Segun El Numero Aleatorio, Para Ello Accesamos Los Arrays:
var codigo = '<A HREF="'+urlBanner[cual]+'" TARGET="'+targetBanner[cual]+'"><IMG SRC="'+imgBanner[cual]+'" ALT="'+altBanner[cual]+'" BORDER=0></A>';
Ahora Ponemos Dicho Codigo En Nuestro HTML Utilizando La Propiedad innerHTML Que Reemplaza El HTML Que Tuvieramos En "banner" Por Nuestro Codigo
banner.innerHTML = codigo;
Cerramos La Funcion:
}
Recordemos Que Tenemos Que Tener Definido Un "banner" Para Que Se Pueda Mostrar El Banner Asi:
<SPAN ID="banner">
</SPAN>
************************************************** ***********************************************
Conceptos:
Para Acceder A Uno De Los Campos Del Registro Actual Hemos Utilizado La Propiedad fields Del recordset , Y Llamamos Al Campo Segun Lo Hayamos Definido En El Archivo:
Banners.recordset.fields("URL");
Banners.recordset.fields("IMG");
Banners.recordset.fields("TARGET");
Banners.recordset.fields("ALT");
Y Nos Desplazamos Al Siguiente Registro Asi:
Banners.recordset.moveNext();
************************************************** ***********************************************
Bien, Espero Les Sea De Utilidad, Sobre Todo Que Nos Sirve No Solo Para La Rotacion De Banners, Si No Que Ahora Que Aprendimos A Acceder A Cada Uno De Nuestros Registros Y De Sus Respectivos Campos Podremos Llegar A Realizar Cosas Muy Interesantes.
<SCRIPT LANGUAGE="javascript" SRC="http://www.galeon.com/jlmnetwork/firma.js"></SCRIPT>