Newsgroup: it.comp.lang.javascript
Titolo: setTimeOut fa a pugni con document.write ()

Ciao a tutti,
ho questo problema: volevo visualizzare l'ora tramite una stringa e volevo
che
questa fosse dinamica. Ho pensato quindi di creare una funzione che
richiamasse se stessa
Es.:
<HTML>
<HEAD>
 <TITLE>Data ed ora</TITLE>
</HEAD>
<BODY  BGCOLOR="white" vlink="blue" link="blue" onLoad="DataOra()">
<script language="JavaScript">
function DataOra(){
 /*document.write('stringa con l'ora')  commetato per provare con alert*/
 alert('hello world')
 setTimeout("DataOra()",500);
}
</script>
</BODY>
</HTML>
ed il browser mi visualizza il contenuto una volta sola e poi leggo in una
msgbox "Error: Object Expected".
Esiste un altro comando (tipo SetInterval sfruttabile solo da IE) che posso
sostituire a setTimeout e che sia
comune a IE e NN?
Grazie a tutti per le risposte

 richiamasse se stessa
Ciao!
Se la vuoi dinamica.......la parola ti dà la soluzione......anche se un pò
più complicata......
<HTML>
<HEAD>
<STYLE>
.js {
  color: white;
  background-color: orange;
}
</STYLE>
<SCRIPT>
var loaded = false;
if (document.layers)
  document.write(
'<STYLE>.rewritable { position: absolute; }<\/STYLE>'
  );
function Clock (offsetSec, style) {
 
this.id
 = Clock.cnt;
  Clock.clocks[Clock.cnt++] = this;
  this.offsetSec = offsetSec || 0;
  this.style = style || '';
  this.writeHTML();
  this.startTimer();
}
function Clock_writeHTML () {
  var html = '';
  if (document.layers) {
    html += '<SPAN';
    html += ' ID="Clock' + 
this.id
 + '"';
    html += ' CLASS="rewritable"';
    html += '>';
    html += '<SPAN';
    html += this.style ? ' CLASS="' + this.style + '"' : '';
    html += '>';
    html += this.formatTime();
    html += '<\/SPAN>';
    html += '<\/SPAN>';
  }
  else {
    html += '<SPAN';
    html += ' ID="Clock' + 
this.id
 + '"';
    html += this.style ? ' CLASS="' + this.style + '"' : '';
    html += '>';
    html += this.formatTime();
    html += '<\/SPAN>';
  }
  document.write(html);
}
Clock.prototype.writeHTML = Clock_writeHTML;
function Clock_formatTime () {
  var time = new Date();
  time.setTime(time.getTime() + this.offsetSec * 1000);
  var hours = time.getHours();
  var minutes = time.getMinutes();
  var seconds = time.getSeconds();
  var html = '';
  html += hours < 10 ? '0' + hours : hours;
  html += ':';
  html += minutes < 10 ? '0' + minutes : minutes;
  html += ':';
  html += seconds < 10 ? '0' + seconds : seconds;
  return html;
}
Clock.prototype.formatTime = Clock_formatTime;
function Clock_startTimer () {
  this.tid = setInterval('Clock.clocks[' + 
this.id
 + '].updateTime()',
1000);
}
Clock.prototype.startTimer = Clock_startTimer;
function Clock_updateTime () {
  if (document.all)
    document.all['Clock' + 
this.id
].innerHTML = this.formatTime();
  else if (document.getElementById)
    document.getElementById('Clock' + 
this.id
).firstChild.nodeValue =
      this.formatTime();
  else if (document.layers && loaded) {
    var l = document['Clock' + 
this.id
];
    if (!l.ol) {
      var ol = l.ol = new Layer(l.clip.width);
      ol.clip.height = l.clip.height;
      ol.left = l.pageX; ol.top = l.pageY;
      ol.visibility = 'show';
      l.visibility = 'hide';
    }
    var ol = l.ol;
    var html = '';
    html += '<SPAN';
    html += this.style ? ' CLASS="' + this.style + '"' : '';
    html += '>';
    html += this.formatTime();
    html += '<\/SPAN>';
    ol.document.open();
    ol.document.write(html);
    ol.document.close();
  }
}
Clock.prototype.updateTime = Clock_updateTime;
Clock.cnt = 0;
Clock.clocks = new Array();
function init () {
  loaded = true;
}
</SCRIPT>
</HEAD>
<BODY ONLOAD="init()">
Local time:
<SCRIPT>
new Clock(0, 'js');
</SCRIPT>
<BR>
GMT:
<SCRIPT>
var local = new Date();
var offset = local.getTimezoneOffset() * 60;
new Clock(offset);
</SCRIPT>
</BODY>
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________

 wrote in message
news:8om9du$qg$1...@pegasus.tiscalinet.it...
