Newsgroup: it.comp.lang.javascript
Titolo: errore su firefox

  if (document.all) {
  esplora.innerHTML = code;
  }
  else {
    	 document.layers.esplora_nn.document.open();
    	 document.layers.esplora_nn.document.write(code);
    	 document.layers.esplora_nn.document.close();
       }
 }
questo codice funziona bene sia su IE che su opera ma non funziona su
firefox.
l'eerore me lo da sulle righe con document.layers.
qualcuno può aiutarmi a inserire il codice corretto affinchè il tutto giri
anche su firefox (visto la mia poca conoscenza attuale di javascript se
non chiedo troppo mi servirebbe proprio il codice da sostituire)
ciao a tutti e grazie anticipatamente
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 non chiedo troppo mi servirebbe proprio il codice da sostituire)
Supponendo che "esplora" sia l'id di un elemento:
<div id="esplora"></div>
Questo codice funziona in ogni browser recente (escludi quindi roba come
IE4, NS4.x):
document.getElementById("esplora").innerHTML=code;
Puoi anche quindi eliminare l'orribile "document.all" di cui prima.
-- 
ZER0
~ The Tangent Universe collapsed 5911 days, 3 hours, 31 minutes and 56 seconds ago.
on air ~ "GemBOY - Praticamente ovvio"

Puoi anche quindi eliminare l'orribile "document.all" di cui prima.
Un appunto giusto per completare le cose (e non rivolto a ZERO dato
che sicuramente non ne ha bisogno :-))
Da notare che nelle ultime versioni di Mozilla 1.75 e Firefox 1.0
hanno implementato una undetectable document.all e l'esposizione degli
elementi tramite il loro id nello scope globale, cosa che anche se
cerca di rendere le cose piu' compatibili verso IE,  potrebbe fare in
modo che gli sviluppatori web continuino a sbattere la testa contro il
muro se non si leggono bene le specifiche :-)
IMO anche se queste due features sono state implementate non devono
essere considerate se si sta scrivendo del codice e seguire comunque
lo standard DOM definito dal W3C.
'bye

 elementi tramite il loro id nello scope globale,
Si, lo sapevo. Postai parecchio tempo fa la notizia proprio su questo NG..
dovresti saperlo, dato che t'eri accodato anche tu a quello stesso thread.
:)
Cmq all'epoca mi pareva d'aver letto solo di Mozilla, non di Firefox..
Giusto per scrupolo ho provato su FF 1.0 il document.all e l'esposizione
degli elementi tramite attributo id (la cosa piu' truce che la M$ abbia mai
fatto, IMVHO) e non mi ha funzionato.
-- 
ZER0
~ The Tangent Universe collapsed 5911 days, 4 hours, 52 minutes and 16 seconds ago.
on air ~ "GemBOY - Per un Pompino"

 ciao a tutti e grazie anticipatamente
grazie mille a entrambi. problema risolto. ciao e grazie ancora


fatto, IMVHO) e non mi ha funzionato.
Strano, con FF 1.0:
<html>
<head>
<script type="text/javascript">
var ie = document.all;
function t(){
var msg="detectable document.all";
if(!ie){
	msg="un"+msg;
}
document.getElementById("da").innerHTML=msg;
try{
	document.all.a.innerHTML="accedo alla div a con document.all";
} catch(e){
	document.getElementById("a").innerHTML="non accedo alla div
con document.all";
}
try{
	b.innerHTML="b in global scope";
} catch(e){
	document.getElementById("b").innerHTML="b non in global
scope";
}
}
</script>
</head>
<body>
<a href="#" onclick="t();return false;">check document.all</a>
<div id="da">?</div>
<div id="a">?</div>
<div id="b">?</div>
</body>
</html>
Clickando sul link visualizza:
=====
check document.all
undetectable document.all
accedo alla div a con document.all
b in global scope
=====
Per caso hai disabilitato la feature?
In about:config hai  browser.dom.document.all.disabled  settato a
true?
'bye

 true?
Non ho ora il tempo di provare lo script, ma
"browser.dom.document.all.disabled" non ce l'ho proprio nell'about:config.
Lo script che avevo provato io era qualcosa del tipo:
<div id="b">some text</div>
<script type="text/javascript">
	alert(b);
</script>
Pero' mi pare in effetti di ricordare che per "attivare" la compatibilita'
con document.all bisognava invocare prima la collection.. o qualcosa del
genere. Ora non ho modo di vedere; tu ricordi qualcosa?
-- 
ZER0
~ The Tangent Universe collapsed 5911 days, 9 hours, 31 minutes and 24 seconds ago.
on air ~ "GIGI LA TROTTOLA"