Newsgroup: it.comp.lang.javascript
Titolo: [MODAL] Atto Terzo

Premettendo che potrebbe essere sbagliato............
Partendo dalla funzione di Zero togliendo il   "showModalDialog" a me sembra
che funzioni lo stesso su IE senza dare Errori e senza perdere il
focus......
Provata solo su IE 5  IE 5.5 e NN4.7.....
Confermate o smentite??
<script language="javascript">
var aa=null;
function mod(){
aa=window.open('dati.htm','aa','height=200,width=200');
aa.focus();
}
function fc(){
if(aa &&!aa.closed){
aa.focus();
self.blur();
}
}
</script>
</head>
<body onFocus="fc()">
<p><a href="javascript:mod();">Apri</a></p>
</body>
Se ci fossero problemi con il focus  per il doppio click con IE...al limite
si può inserire......
if(document.all){
if(document.onDblClick){
aa.focus;
}
}
a me funzionava anche senza........
non è la stessa cosa di "showModalDialog" ma si comporta esattamente come in
Netscape...
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________
javascript-javascript-javascript
http://www.jsdir.com
____________________
*¢ L'unica certezza nella vita è che tutto è relativo (per fortuna)¢*

 Confermate o smentite??
Premettendo che, obiettivamente, mi sono stancato di thread su finestre
modali... :D
Il tuo script non funziona su IE (non volermene!), in quanto -come detto
gia' in altri post, e fatto notare anche da Riccardo-
la proprieta' "closed" non e' gestita bene come su NS, e quindi quando la
finestra viene chiusa, da' un "Errore non specificato",
perche' trova "aa" sempre avvalorata, e "aa.closed" sempre a true.
Puo' darsi che su IE 5.5 abbiano risolto questo "baco" (se vuoi controllo a
casa), ma da IE 5.01 in giu' tale script non va'.
Lo script da te proposto oggi, fu il primo da me provato prima di introdurre
la showModalDialog in quello che poi ho pubblicato.
Certo, e' possibile cercare di ovviare al problema temporizzando un paio di
cose, oppure definendo un event handler sull'evento error (come provo'
Riccardo)... Ma se bisogna star a fare questi rattoppi, e' preferibile usare
la showModalDialog, che funziona anche meglio.
Questo e' il processo che mi ha portato a realizzare la funzione
"openModalDialog();"... Anche io inizialmente avrei preferito fare un codice
unico che funzionasse su entrambi i browser, ma visto che c'ho non e' stato
possibile, ho introdotto uno sniffing per aprire una finestra realmente
modale su IE.
Piccola parentesi:
Dopotutto, se un browser ha delle "feature" in piu' rispetto ad un'altro,
cerchiamo di usarle (nel limite di un qualcosa che cmq funzioni su
entrambi).
Giusto per fare un esempio, NS non ha i Visual Filters. Su IE preferisco
usarne qualcuno, anche se NS non riesce a visualizzarli.
Questo perche' non minano la funzionalita' del sito stesso. Il sito si vede
e funziona su entrambi i browser.
Solo che su uno ci sono degli effetti speciali che sull'altro non ci sono, o
sono differenti (Es: Su IE un menu' compare in crossfading, su NS appare con
uno slide verso l'angolo in basso a destra - un po' come i menu' di Win98).

 casa), ma da IE 5.01 in giu' tale script non va'.
Sì olre la 5.5 la mia è 5.01 aggiornata....e l'errore non l'ho
avuto............sicuramente sotto non andrà..
Senti...ho trovato in riferimento all'argomento.....  tra le caratteristiche
per NN in window.open...."modal=1"   e "openDialog" invece di window.open
.....sai qualcosa in merito???


 .....sai qualcosa in merito???
Stai parlando di NN6..?
Perche' su NS4.x (e su Javascript 1.3) non c'e' nessun "openDialog" o
riferimenti ad una flag "modal".
Ho anche testato (si dice mai che non sia documentato..), ma l'unico
risultato che ho avuto con "modal=1" e' stato che NS non mi ridisegnava la
client area (!).
Dove hai trovato queste informazioni? :?

 Dove hai trovato queste informazioni? :?
http://developer.netscape.com/viewsource/goodman_modal/goodman_modal.html
vedi un pò..(se ti và eh!!)....che in questa pagina parla anche di......
onLoad="if (opener) opener.blockEvents()"
onUnload="if (opener) opener.unblockEvents()"
l'ho guardato di fretta......
ma non ho capito bene il rif......(sono anch'io al 1.3 e nin ci stà.).....


 ma non ho capito bene il rif......(sono anch'io al 1.3 e nin ci stà.).....
Giustamente. ^_^
La pagina di goodman ha come title "Simulating".. In pratica il codice che
c'e' scritto la' e' un tentativo come il nostro di aprire finestre modali
nei browser di 4° generazione... Solo che il suo codice e' dieci volte piu'
lungo dei nostri.
Ora, non vorrei passare sempre per quello che va a cercare il pelo
nell'uovo, o che critica tutto e tutti indistintamente, ma... quel codice
non funziona... ^__^
O almeno l'esempio che c'e' su quella pagina non va.
In IE 5.01, basta un doppio click sulla finestra genitrice e mi riapproprio
del focus.
Se chiudo la genitrice prima della figlia, succede l'apocalisse.
"openDialog" e' una funzione che ha fatto lui, cosi' come blockEvents() e
unblockEvents().
Cmq sia, ci sono un paio di spunti interessanti, ma tutti gli esempi sono
scadenti.. :/

 scadenti.. :/
Sì ,avevo provato anch'io e non andava......cmq sempre in quei dintorni per
IE ho trovato anche..
showModelessDialog('url', argumentObject, 'featureString') ......mi sembra
che l'unica differenza da Modal sia che se iconizzi la finistra padre si
iconizza anche l'altra e viceversa......


 iconizza anche l'altra e viceversa......
Non proprio.
Come dice il nome della funzione, una finestra aperta con
"showModelessDialog" e' una finestra *non* modale.
Quindi, l'opposto di quello di cui abbiamo discusso fin'ora.. Infatti, resta
in primo piano (a differenza di una canonica window.open, che e' anch'essa
modeless cmq.. ovvero, non modale, solo che non e' "AlwaysOnTheTop"..) ma
perde il focus e lo fa acquisire alla genitrice, in modo che l'utente possa
operare su tale finestra.
Cmq sia, questa nostra nuova discussione mi ha portato ad una revision (che
avevo gia' intenzione di fare, almeno su uno dei due punti di codice rivisti
e corretti) della "openModalDialog".
Per IE non e' cambiata una virgola, per Netscape ho migliorato un paio di
cose.
Adesso la ripubblico su jsdir, eventualmente dagli un occhiata e dimmi che
ne pensi.
P.S.
Ovviamente appena esce la release di NN6 verra' incluso il supporto di tale
browser. :)


Ho fatto un pò di esperimenti con la PR2 ma il massimo risultato è stato uno
sfarfallamento  della figlia per (colpa del focus imposto ) alcuni secondi
fino al "crash"......niente da fare...
