Newsgroup: it.comp.lang.javascript
Titolo: Dubbio con document.all e FireFox

Buongiorno a tutti!
Mi sono trovato a dover fare delle modifiche a una pagina che conteneva
questo script:
-----------------------------------------------------------------------
<SCRIPT>
var nav = (document.layers); 
var iex = (document.all);
var skn = (nav) ? document.topdeck : topdeck.style;
if (nav) document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = get_mouse;
function pop(msg,bak)
{
var content ="<TABLE WIDTH=150 BORDER=0 CELLPADDING=2 CELLSPACING=0
BGCOLOR=#9b9bce><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0
CELLSPACING=0><TR><TD><CENTER><FONT COLOR=#FFFFFF SIZE=2><B>Detailed
Info</B></FONT></CENTER></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0
CELLPADDING=2 CELLSPACING=0 BGCOLOR="+bak+"><TR><TD align=left><FONT
COLOR=#000000
SIZE=2>"+msg+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
  if (nav)
  {
    skn.document.write(content);
	  skn.document.close();
	  skn.visibility = "visible";
  }
    else if (iex)
  {
	  document.all("topdeck").innerHTML = content;
	  skn.visibility = "visible";
  }
}
function get_mouse(e)
{
	var x = (nav) ? e.pageX : event.x+document.body.scrollLeft;
	var y = (nav) ? e.pageY : event.y+document.body.scrollTop;
	skn.left = x - 60;
  skn.top  = y+20;
}
function kill()
{
  skn.visibility = "hidden";
}
</SCRIPT>
--------------------------------------------------------------------
Ovviamente è stato progettato solo per IE e Netscape, ma avevo trovato
qualche indicazione (qualcuna proprio su questo NG) a propoito del fatto
che FireFox supporta document.all ... Allora l'ho modificato
appositamente perchè funzioni anche sotto firefox ma... Niente, non
funziona.
In particolare, ho provato con un:
var ffx = (document.all);
alert (ffx);
Ma all'avvio della pagina l'alert di FireFox mi dice 'undefined'.
Però ho risolto la questione facendo così:
--------------------------------------------------------------------
<SCRIPT>
var nav = (document.layers); 
var iex = (document.all);
if (!nav && !iex) var ffx = 1;
var skn = (nav) ? document.topdeck : topdeck.style;
if (nav) document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = get_mouse;
function pop(msg,bak)
{
var content ="<TABLE WIDTH=150 BORDER=0 CELLPADDING=2 CELLSPACING=0
BGCOLOR=#9b9bce><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0
CELLSPACING=0><TR><TD><CENTER><FONT COLOR=#FFFFFF SIZE=2><B>Detailed
Info</B></FONT></CENTER></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0
CELLPADDING=2 CELLSPACING=0 BGCOLOR="+bak+"><TR><TD align=left><FONT
COLOR=#000000
SIZE=2>"+msg+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
  if (nav)
  {
    skn.document.write(content);
	  skn.document.close();
	  skn.visibility = "visible";
  }
    else if (iex)
  {
	  document.all("topdeck").innerHTML = content;
	  skn.visibility = "visible";
  }
    else if (ffx)
  {
	  document.all("topdeck").innerHTML = content;
	  skn.visibility = "visible";
  }
}
function get_mouse(e)
{
	var x = (nav) ? e.pageX : event.x+document.body.scrollLeft;
	var y = (nav) ? e.pageY : event.y+document.body.scrollTop;
	skn.left = x - 60;
  skn.top  = y+20;
}
function kill()
{
  skn.visibility = "hidden";
}
</SCRIPT>
--------------------------------------------------------------------
Quindi, se è definito document.layer segue nav, se è definito
document.all segue ie, se non trova nessuno imposta ffx a 1.
Ma a quel punto, se non ha trovato document.all, com'è che questo
funziona?
    else if (ffx)
  {
	  document.all("topdeck").innerHTML = content;
	  skn.visibility = "visible";
  }
Grazie mille dell'attenzione,
-- 
dorje
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 che FireFox supporta document.all ... 
No
Si era detto che nelle ultimissime versioni Mozilla (non so firefox)
supporta document.all come collection, ma all'asserzione
document.all?restituisce false (per fortuna...)
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

document.all?restituisce false (per fortuna...)
Yep.
'bye


Gello Ramello

 document.layers (a meno di richiesta compatibilità netscape4.x).
In effetti quello script era vecchissimo e per mia scelta mi sono sempre
tenuto alla larga da javascript. :o)
-- 
dorje

 per caso era la home page di isam? :-)
^__^
A dire il vero quella pagina non la tocco più da anni, ormai... 
Il lavoro mi porta via tantissimo tempo e purtroppo non riesco
a frequentare isam. :o(
Salutami tutti.. anzi, passerò a fare un salutino io! :o)
-- 
dorje

 Che si puo' anche disabilitare da preference.
Però non l'ho trovato...
-- 
dorje