Newsgroup: it.comp.lang.javascript
Titolo: Rendere script compatibile

Ciao!
Ho trovato questo scrip che mi è molto utile. L'unico problema è che 
funziona solo con IE. Potete p.f. aiutarmi a renderlo compatibile anche con 
gli altri browser (o almeno Firefox)? Ho letto che il problema dovrebbe 
essere causato dal document.all, ma non so come sostituirlo.
Grazie.
Uli666
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<bgsound src="#" loop="0" autostart="true" id="soundFile">
<script type="text/javascript">
function gotoNextPage(page) {
window.location='link.html';
}
function playSound(sound) {
document.all.soundFile.src="sound.wav";
window.setTimeout("gotoNextPage('" + sound + "');",3000);
}
</script>
</head>
<body>
<p><a href="link.html" onclick="playSound('sound'); return false;">
Page 2</a></p>
</body>
</html>
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com
 The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----

 document.all.soundFile.src="sound.wav";
vedi sopra
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 esplicita l'href, location è un oggetto (window.location.href=...)
Fatto! :-)
Ciao e grazie per l'aiuto.
Uli666 


 document.all.soundFile.src? Potresti spiegarmi un po' piů nel dettaglio? 
copi il prototype e al posto di document.all.tuoid metti GetRef("id")
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 copi il prototype e al posto di document.all.tuoid metti GetRef("id")
Ho fatto cosě (vedi sotto), ma non funziona. Sicuramente ho sbagliato 
qualcosa... mi sapresti dire dove? Grazie per la pazienza.
Uli666
window.GetRef=function(id,TarGet) {
  if(TarGet==null) TarGet=window;
  if (TarGet.document.getElementById && TarGet.document.getElementById(id) 
&& _
   TarGet.document.getElementById(id).style) {
   return TarGet.document.getElementById(id);
  } else if (TarGet.document.all && TarGet.document.all[id] && 
TarGet.document.all[id].style) {
   return TarGet.document.all[id]; }
  else if (TarGet.document.layers && TarGet.document.layers[id]) {
   TarGet.document.layers[id].style=TarGet.document.layers[id];
   return TarGet.document.layers[id];
  }else return null;
 }
function playSound(sound) {
GetRef ("soundFile")="sound.wav";
window.setTimeout("gotoNextPage('" + sound + "');",3000);
}
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----


 GetRef ("soundFile")="sound.wav";
come ti ho scritto la GetRef sostituisce il 
document.all.id
 ... e l'src
dove è andato?
GetRef("soundFile").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.

 GetRef("soundFile").src="...";
Ooppss... hai ragione, scusa, mi era sfuggito l'src...
Però purtroppo non funziona lo stesso. Ti riposto l'intero codice per vedere 
se magari c'è qualcos'altro di sbagliato.
Grazie ancora per l'aiuto.
Uli666
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<bgsound src="#" loop="0" autostart="true" id="soundFile">
<script type="text/javascript">
function gotoNextPage(page) {
window.location.href='link.html';
}
window.GetRef=function(id,TarGet) {
  if(TarGet==null) TarGet=window;
  if (TarGet.document.getElementById && TarGet.document.getElementById(id) 
&& _
   TarGet.document.getElementById(id).style) {
   return TarGet.document.getElementById(id);
  } else if (TarGet.document.all && TarGet.document.all[id] && 
TarGet.document.all[id].style) {
   return TarGet.document.all[id]; }
  else if (TarGet.document.layers && TarGet.document.layers[id]) {
   TarGet.document.layers[id].style=TarGet.document.layers[id];
   return TarGet.document.layers[id];
  }else return null;
 }
function playSound(sound) {
GetRef("soundFile").src="sound.wav";
window.setTimeout("gotoNextPage('" + sound + "');",3000);
}
</script>
</head>
<body>
<p><a href="link.html" onclick="playSound('sound'); return false;">
Page 2</a></p>
</body>
</html>
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----


    TarGet.document.getElementById(id).style) {
queste 2 vanno unite (togli l' _ dopo il && e metti su una riga)
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

 se magari c'è qualcos'altro di sbagliato.
se guardi però la javascript console di firefox l'errore sarà ben indicato
...
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 queste 2 vanno unite (togli l' _ dopo il && e metti su una riga)
Ok, fatto! Grazie mille. Però in Firefox ancora non va (in IE sì, ma andava 
già anche con il codice originale). Possibile che magari sia dovuto al 
bgsound?
Dove trovo la javascript console per farmi un'idea se ci sono errori?
Ciao e grazie!
Uli666


 Dove trovo la javascript console per farmi un'idea se ci sono errori?
nei menù di firefox ...
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 nei menù di firefox ...
Ok, trovata. Grazie! :-)


 quello script che mi serve. 
e a cosa ti serve scusa?
A cambiare pagina dopo x millisecondi?
togli il tag, togli il GetRef e lascia solo il setTimeout...


 togli il tag, togli il GetRef e lascia solo il setTimeout...
Mi serve ad avere un piccolo suono quando si clicca su un link.


 Mi serve ad avere un piccolo suono quando si clicca su un link.
e allora ti serve, non è che è accessorio.
Devi studiarti come sostituire il bgsound affinché funzioni anche con
firefox.


 firefox.
Sto guardando... ma non è che trovo molto. In alcuni siti dicono di usare 
l'embed al posto del bgsound, ma purtroppo non funziona. :-(
A questo punto magari converrebbe trovare un altro modo per ottenere 
l'effetto del suono quando si clicca sul link. Tu hai qualche suggerimento?
Ciao e grazie.


 l'effetto del suono quando si clicca sul link. Tu hai qualche suggerimento?
no ... potresti semplicemente (mi vergogno quasi a scriverlo perché siamo
all'opposto di una corretta programmazione) saltare il set dell'src di
bgsound se non è ie:
 if(document.all)
  GetRef(bla bla)
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

  GetRef(bla bla)
Scusa, ma non ho ben capito cosa intendi. Dove dovrei inserire quel codice 
di preciso?
A proposito di bgsound ed embed ho trovato questo sito 
(
http://www.webreference.com/js/column20/embed.html
), ma non mi è chiaro 
come sostituirlo...


 di preciso?
dove hai messo il GetRef prima verifichi se supporta il document.all ...
non ho capito io cosa non ti è chiaro.


 non ho capito io cosa non ti č chiaro.
Ora ho messo cosě:
function playSound(sound) {
if(document.all)
GetRef("soundFile").src="sound.wav";
window.setTimeout("gotoNextPage('" + sound + "');",3000);
}
Ma comunque su Firefox non funziona (su IE sě).
A questo punto mi chiedo se non valga la pena scrivere un nuovo script da 
zero che sia compatibile con tutti i browser (oppure vedere se si puň fare 
qualcosa con flash) piuttosto che tentare di modificare questo.
Ho aperto un nuovo thread in proposito. Se hai voglia mi aiuteresti? :-)
Ciao e grazie di tutto.


 Ho aperto un nuovo thread in proposito. Se hai voglia mi aiuteresti? :-)
Come ti dicevo non uso queste cose e IMHO sono completamente inutili se non
portatrici di problemi (e sinceramente non ho tempo di mettermi a studiare
da zero come produrre un piccolo suono con firefox quando clicco su un
pulsante...)
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 pulsante...)
Sì, hai ragione, scusami. È chiaro che non posso rubarti altro tempo. Sei 
già stato gentilissimo ad aiutarmi fin qui.
Grazie di tutto!


 Firefox semplicemente non succeda nulla?
ok, però non puoi lavorare con un linguaggio di cui non conosci nemmeno le
basi, forse ti conviene studiarti almeno i costrutti base ...
if(document.all) {
  GetRef...
  setTimeout..
} else gotoNextPage(); //il parametro è inutile, tanto nella function non
lo caghi minimamente...
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 } else gotoNextPage();
Fatto! Tutto a posto. Ti ringrazio ancora moltissimo per l'aiuto e la 
pazienza. :-)
Ciao!
