Ok, questa è la mia versione:
Codice HTML:
<script type="text/javascript">
//qui decidi cosa fare di default quando non viene indicato il quarto parametro
var defaultOpenInNewWin = true;
var banners = new Array();
//new Banner("URL sito", "descrizione", "URL immagine", true /* se in nuova finestra */);
banners[0] = new Banner("http://www.google.it", "Descrizione apri in nuova finestra", "http://www.google.it/images/logo_sm.gif", true);
banners[1] = new Banner("", "Descrizione niente link", "http://www.google.it/images/logo_sm.gif", false);
banners[2] = new Banner("http://www.google.it", "Descrizione default open", "http://www.google.it/images/art.gif");
banners[3] = new Banner("", "Descrizione niente link default open", "http://www.google.it/images/art.gif");
function Banner(url, description, image, newWin) {
this.url = url;
this.isLinked = url.length>0;
this.description = description;
this.image = image;
this.newWin = (newWin)? newWin : defaultOpenInNewWin;
return this;
}
var bNum = Math.round(Math.random() * (banners.length - 1));
var bnr = banners[bNum];
var jsout = '';
if (bnr.isLinked)
jsout += "<a href=\""+ bnr.url +"\""+ (((bnr.newWin))?" target=\"_blank\">":">");
jsout += "<img src=\""+ bnr.image +"\" border=\"0\" alt=\""+ bnr.description +"\" title=\""+ bnr.description +"\">";
if (bnr.isLinked)
jsout += "</a>";
document.write(jsout);
</script>
Ho messo anche quattro esempi di banner per provare le varie combinazioni.
Diciamo che il quarto parametro, booleano true/false, per indicare se voglio aprire in una nuova finestra, in questo modo è OPZIONALE.
Cioè se non voglio un link che gli passo a fare il parametro?
Nel caso in cui indico un url per il link potrei anche OMETTERE il quarto parametro opzionale, a quel punto entra in gioco il valore di DEFAULT (predefinito) che imposto nella variabile defaultOpenInNewWin.
Ho aggiunto anche l'attributo TITLE oltre che ALT perché mozilla non visualizza il testo alternativo nel tooltip (etichetta descrittiva che appare sopra le immagini).
L'ho testato funziona