Newsgroup: it.comp.lang.javascript
Titolo: [MODAL] Cross-Browser

Ho aggiunto alla modale di ZERO presente su jsdir la parte per NN6..
Il problema nasceva dal fatto che NN6 necessita di una distinzione specifica
a livello di browser (document.all ,document.layers..etc) e quindi non
apriva nessuna finestra . Una volta specificata  la parte di funzione per
NN6 per il browser (già utilizzata da me in un altra occasione) apriva però
una finestra normale che poteva essere iconizzata.
Problema risolto con "openDialog "  che con NN6 funziona benissimo.
L'altro problema era che  la function "checkFocus" mandava in "crash "
NN6.....problema risolto lasciando la function per IE e NS4 e mettendo una
semplice function per ridare il focus alla modale per NN6.
Risultato identico funzionamento degli altri due , cioè rimane in primo
piano , non è iconizzabile e se clicchi sulla padre questa non và sotto le
altre...
Se qualcuno che ha NN6 la può provare ci dica se funxia....
ZERO , anche se non hai NN6 prova a dargli un occhio e vedi se può andare e
se c'è qualche error (non mi sembra!) che a te
non sfugge niente!!:-)))
Ciao!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <title>Show Modal Window</title>
 <script>
/***************************************************************************
*****
 // JAVASCRIPT SOURCE
 // Open a Modal Window in IE & NS.
 //
 // .Date - Sept 2K
 // .Rev 13.Sept.2K
 //
 // .Author - ZER0
****************************************************************************
****/
 function ver(){
 aa=this;
 aa.ver=navigator.appVersion
 aa.dom=document.getElementById;
 aa.ie5=(aa.ver.indexOf("MSIE 5")>-1 && aa.dom);
 aa.ie4=(document.all && !aa.dom);
 aa.ns5=(aa.dom && parseInt(aa.ver) >= 5);
 aa.ns4=(document.layers && !aa.dom);
 
aa.bb
=(aa.ie5 || aa.ie4 || aa.ns4 || aa.ns5);
 return aa;
}
bb=new ver()
 var myWin=null, isBlocked=false;
 if(bb.ie4 || bb.ie5 || bb.ns4){
 function checkFocus(){
  if (myWin && !myWin.closed){
   myWin.focus();
   return false;
  }else if (isBlocked) {
   document.releaseEvents(Event.MOUSEDOWN);
   document.onmousedown=null;
   isBlocked=false;
  }
 }
 }
 function openModalDialog(url, t,l,w,h){
  if (bb.ns4){
   document.captureEvents(Event.MOUSEDOWN);
   document.onmousedown=checkFocus;
   isBlocked=true;
myWin=window.open(url,"newWin","top="+t+",left="+l+",width="+w+",height="+h)
;
   myWin.focus();
  }
  if (bb.ns5){
myWin=openDialog(url,"newWin","top="+t+",left="+l+",width="+w+",height="+h);
   myWin.focus();
  }
  else if (bb.ie4 || bb.ie5)
window.showModalDialog(url,"","dialogTop:"+t+"px;dialogLeft:"+l+"px;dialogWi
dth:"+w+"px;dialogHeight:"+h+"px");
 }
function ns5(){
if(bb.ns5){
myWin.focus();
}
}
 </script>
</head>
<body onfocus="checkFocus();" onunload="if (myWin) myWin.close();"
onClick="ns5()">
<table cellspacing=6 cellpadding=0 border=0>
 <tr>
  <td valign="bottom" colspan=2>
 <pre style="color:#808080">
/*************************************
// JAVASCRIPT SOURCE
// Open a Modal Window in IE &amp; NS.
//
// .Date - Sept 2K
// .Rev 13.Sept.2K
//
// .Author - ZER0
***************************************
  </pre>
  </td>
 </tr>
 <tr>
  <td colspan=2>
   <span
style="font-family:Tahoma;font-size:24px;font-weight:bold;color:#000000;">Op
en a Modal Window in IE & NS</span>
  </td>
 </tr>
 <tr>
  <td width=10>&nbsp;</td>
  <td>
   <font face="Tahoma" size=2>
    Simula l'apertura di una finestra modale in IE e in NS.<br>
    La funzione ha lo scopo di introdurre l'apertura di una finestra modale
generica,
    in modo da essere modificata secondo le esigenze, aggiungendo le flag
appropriate.
    <br><br>
   </font>
  </td>
 </tr>
 <tr>
  <td  colspan=2>
   <span
style="font-family:Tahoma;font-size:18px;font-weight:bold;color:#000000">Bug
Fixed</span>
  </td>
 </tr>
 <tr>
  <td width=10>&nbsp;</td>
  <td>
   <font face="Tahoma" size=2>
    <b>:.&nbsp;</b>La finestra genitrice non sparisce piu' sotto eventuali
altre finestre che non siano la figlia.<br>
    <br>
    <b>:.&nbsp;</b>Finche la finestra figlia e' aperta, la genitrice e'
insensibile agli eventi (tranne il resize).<br><br>
   </font>
  </td>
 <tr>
  <td  colspan=2>
   <span
style="font-family:Tahoma;font-size:18px;font-weight:bold;color:#000000">Dic
hiarazione</span>
  </td>
 </tr>
 <tr>
  <td width=10>&nbsp;</td>
  <td>
   <font face="Tahoma" size=2>
<b>openModalDialog</b>(<i>url</i><b>,</b><i>top</i><b>,</b><i>left</i><b>,</
b><i>width</i><b>,</b><i>height</i>);
   </font>
  </td>
 <tr>
  <td colspan=2>
   <font face="Tahoma" size=2>
    Esempio di finestra modale: <a href="#"
onclick="openModalDialog('about:blank',0,0,320,200);"
style="font-weight:bold;color:#3165CE;">openModalDialog</a>
   </font>
  </td>
 </tr>
</table>
</body>
</html>
____________________
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)¢*

Spero che non ti sia offeso ma andavo offline e ho letto dopo il tuo
repost!!!! :-(((((


Non volevo assolutamente togliere niente a te, ZERO , pensavo si potesse
collaborare....cmq mi scuso ancora per il mio post !!
