Newsgroup: it.comp.lang.javascript
Titolo: Cambio testo status bar

Ciao.
Utilizzo la seguente funzione per cambiare il testo nella status bar:
------------------------------------
function setStatus(msg){
    if(msg == undefined){
    window.status = "";
    }
    else {
        window.status = msg;
    }
}
------------------------------------
Lo script si trova in un file separato dalla pagina. Lo richiamo in questo
modo:
------------------------------------
<script language="JavaScript" src="JS/SetStatus.js"></script>
------------------------------------
Infine lo richiamo in questo modo:
------------------------------------
<a href="
http://www.mydomain.com/MyPage.html
"
onmouseover="setStatus('MyText');" onmouseout="setStatus('');">MyText</a>
------------------------------------
Lo script però sembra non funzionare, il testo sulla status bar rimane
quello definito in href.
Dov'è l'errore?
Grazie,
Matteo Migliore.
MSN - 
dynamic...@email.it
Help in chat - soluzione su NG

Io non vedo errori, sei sicuro che il path sia corretto?
Metti un / all'inizio dell'src...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M. -- 

 ha scritto nel messaggio
news:c65h6l$844dv$1...@ID-147253.news.uni-berlin.de...


 onmouseover="setStatus('MyText');" onmouseout="setStatus('');">MyText</a>
<a href="#" onmouseover="return setStatus('MyText')"
onmouseout="return setStatus()">MyText</a>
Perche' funzioni questi eventi vogliono che venga restituito true, avevo
gia' trovato dei thread in merito...
Io proporrei questa variante:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
">
<head>
<title>LinkTxt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/JavaScript">
window.defaultStatus="MySito";//Non e' obbligatorio si puo' cancellare
function setStatus(msg)
{
 if(typeof msg!='undefined')
  window.status=msg;
 else
  window.status=window.defaultStatus||"";
 return true;
}
</script>
</head>
<body>
<a href="#" onmouseover="return setStatus('MyText')"
onmouseout="return setStatus()">MyText</a>
</body>
</html>

> Altri consigli  :-)
Boh...
se togli quel "==undefined" e forzi la scrittura?


 ha scritto nel messaggio
news:c65kbu$7ti$1...@lacerta.tiscalinet.it...


 ha scritto
nel messaggio news:c65ggl$4q9$1...@lacerta.tiscalinet.it...


> Quello che è cambiato è il ";return true;" dopo la chiamata alla funzione.
Ok, e gia' che ci sei fai anche quella variazione sulla funzione:
-----------------------------
if(msg == undefined)
-----------------------------
in
 if(typeof msg=='undefined')
e poi se vuoi c'e' anche quell'altra con "defaultStatus",
insomma riguardati il mio post di prima:
news:c65kbu$7ti$
1...@lacerta.tiscalinet.it

 Ok, e gia' che ci sei fai anche quella variazione sulla funzione:
E perche' mai? Se imposta la chiamata alla funzione come ha specificato nel
suo ultimo post, e' un controllo totalmente inutile.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
La vita e' una tempesta, ma prenderla nel culo e' un lampo.
(B. Grillo)

 suo ultimo post, e' un controllo totalmente inutile.
Ah, dal questo punto di vista si', ed e' anche quello che avevo pensato io!
Tuttavia lui questa cosa l'aveva messa ed io ho deciso di rispettarla,
perche' forse prevedra' di fare delle altre chiamate cosi':
<...onmouseout="return setStatus()">
Poi forse si possono fare delle altre funzioni, la mia era solo un es.;
forse cosi' e' meno leggibile pero' piu' carina:
function setStatus(msg)
{
    window.status=msg||window.defaultStatus||"";
    return true;
}
o forse anche cosi' e non spreco 4byte:
function setStatus(msg)
{
    window.status=msg||window.defaultStatus;
    return true;
}
...
Poi pero' c'e' da dire che non conosco perfettamente cosa dice JS al
riguardo degli argomenti non passati, figuriamoci l'interpretazione dei vari
browser, visto che ognuno fa quello che ca**o vuole! Quindi cosi' a
posteriori di questi discorsi, forse mi sentirei piu' tranquillo usando la
prima che avevo corretto...
Boo, cosa dici?

 o forse anche cosi' e non spreco 4byte:
4 byte risparmiati hanno senso, a livello di banda, se quel codice e'
ripetuto per qualche centinaio io migliaio di volte.
Non ne hanno affatto in termini di risorse, in un comune contesto come
javascript.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
L'ingegnere non vive, funziona.

 javascript.
Vabbe' quella era una battuta, ma in sostanza e' corretto fare una cosa
tipo:
function setStatus(msg)
{
    window.status=msg||window.defaultStatus||"";
    return true;
}
o:
function setStatus(msg)
{
    window.status=msg||window.defaultStatus;
    return true;
}
o: bisogna andare giu' di typeof su msg e (gia' che ci siamo magari anche)
su window.defaultStatus (ovviamente considerando una chiamata come non ha
fatto Matteo esplicitamente nell'altro post ma che e' presumibile che prima
o poi faccia, avendo introdotto LUI questo concetto)

 ma in sostanza e' corretto fare una cosa tipo:
Dipende cosa intendi tu per "corretto" in questa casistica.
Stai utilizzando l'operatore "or", il comportamento del codice che
"sceglie" quale valore assegnare a msg, e' soggetto al comportamento di
tale operatore.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
Plagiarism is copying from one source; 
research is copying from two or more
(Wilson Mizner)

 tale operatore.
Ma cosa vuol dire :"(
Per stare sicuro che i browser facciano correttamente il loro dovere tu come
la scriveresti questa cavolo di funzione banale!