用var win = window.showModalDialog()不行吗?呵呵。

解决方案 »

  1.   

    通过DIV模拟模态,代码
    <html>
    <head>
    <style type="text/css">
    #id1{width:100%;height:100%;background-color:red;position:absolute;top:0;left:0;z-index:49;display:none;  filter:Alpha(opacity=25);
    }
    #id2{top:200px;position:absolute;z-index:50;display:none;border:3px solid #E5E5E5; left:100px;background-color:white;}
    </style>
    </head>
    <body>
    <div id="id2"> 
      <table height="100" width="200">
        <tr>
          <td>                                
          <div id="ShowMSG"></div>
          </td>
        </tr>
        <tr>
    <td align="center"><input class="Button60" onclick="divhide()" type="button" value="close" name="btnDo">
    </td>
        </tr>
      </table>
    </div>
    <input type="button" onclick="divshow('okok')" value="click">
    sdljfoguiougoshohgo
    <div id="id1">okokokokokokokoko</div>
    </body>
    <script language="javascript">
    function divshow(showmsg){ document.getElementById("id1").style.height=window.screen.height+"px";
    document.getElementById("id1").style.width=window.screen.width+"px";
    document.getElementById("id1").style.display='block';
    document.getElementById("id2").style.display='block';
    document.getElementById("ShowMSG").innerText = showmsg;
    }
    function divhide(){ 
    document.getElementById("id1").style.display='none'
    document.getElementById("id2").style.display='none'
    }self.onError=null;                              
    currentX = currentY = 0;                               
    whichIt = null;                                         
    lastScrollX = 0; lastScrollY = 0;                              
    NS = (document.layers) ? 1 : 0;                             
    IE = (document.all) ? 1: 0;                              
    <!-- STALKER CODE -->                              
    function heartBeat(){                              
    if(IE){ diffY = document.body.scrollTop; diffX = document.body.scrollLeft; }                             
    if(NS){ diffY = self.pageYOffset; diffX = self.pageXOffset; }           
    if(diffY != lastScrollY){            
    percent = .1 * (diffY - lastScrollY);    
    if(percent > 0) percent = Math.ceil(percent); 
    else percent = Math.floor(percent);  
    if(IE) document.all.id2.style.pixelTop += percent;  
    if(NS) document.id2.top += percent;                 
    lastScrollY = lastScrollY + percent;      
    }                       
    if(diffX != lastScrollX){       
    percent = .1 * (diffX - lastScrollX);     
    if(percent > 0) percent = Math.ceil(percent);       
    else percent = Math.floor(percent);                   
    if(IE) document.all.id2.style.pixelLeft += percent;        
    if(NS) document.id2.left += percent;       
    lastScrollX = lastScrollX + percent;                     
    }                           
    }                         
    <!-- /STALKER CODE -->              
    <!-- DRAG DROP CODE -->              
    function checkFocus(x,y){         
    stalkerx = document.id2.pageX;     
    stalkery = document.id2.pageY;                        
    stalkerwidth = document.id2.clip.width;              
    stalkerheight = document.id2.clip.height;                         
    if( (x > stalkerx && x < (stalkerx+stalkerwidth)) && (y > stalkery && y < (stalkery+stalkerheight))) return true;                      
    else return false;        
    }                     
    function grabIt(e){            
    if(IE){                            
    whichIt = event.srcElement; 
    while (whichIt.id.indexOf("id2") == -1){    
    whichIt = whichIt.parentElement;                           
    if (whichIt == null){ return true; }         
     }                            
    whichIt.style.pixelLeft = whichIt.offsetLeft;                              
    whichIt.style.pixelTop = whichIt.offsetTop;                          
    currentX = (event.clientX + document.body.scrollLeft);                       
    currentY = (event.clientY + document.body.scrollTop);                        
    } else {                             
    window.captureEvents(Event.MOUSEMOVE);    
    if(checkFocus (e.pageX,e.pageY)) {                            
    whichIt = document.id2;                              
    stalkerTouchedX = e.pageX-document.id2.pageX;      
    StalkerTouchedY = e.pageY-document.id2.pageY;          
    }                              
    }                            
    return true;                        
    }                            
    function moveIt(e){               
    if (whichIt == null){ return false; }       
    if(IE){                             
    newX = (event.clientX + document.body.scrollLeft);                           
    newY = (event.clientY + document.body.scrollTop);                
    distanceX = (newX - currentX);    distanceY = (newY - currentY);   
    currentX = newX;    currentY = newY;                       
    whichIt.style.pixelLeft += distanceX;                          
    whichIt.style.pixelTop += distanceY;                      
    if(whichIt.style.pixelTop < document.body.scrollTop) whichIt.style.pixelTop = document.body.scrollTop;   
     if(whichIt.style.pixelLeft < document.body.scrollLeft) whichIt.style.pixelLeft = document.body.scrollLeft; if(whichIt.style.pixelLeft > document.body.offsetWidth - document.body.scrollLeft - whichIt.style.pixelWidth - 20) whichIt.style.pixelLeft = document.body.offsetWidth - whichIt.style.pixelWidth - 20;
    if(whichIt.style.pixelTop > document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5) whichIt.style.pixelTop = document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5;  
    event.returnValue = false;  
    } else{   
    whichIt.moveTo(e.pageX-StalkerTouchedX,e.pageY-StalkerTouchedY); 
    if(whichIt.left < 0+self.pageXOffset) whichIt.left = 0+self.pageXOffset; 
    if(whichIt.top < 0+self.pageYOffset) whichIt.top = 0+self.pageYOffset;  
    if( (whichIt.left + whichIt.clip.width) >= (window.innerWidth+self.pageXOffset-17)) whichIt.left = ((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17; 
    if( (whichIt.top + whichIt.clip.height) >= (window.innerHeight+self.pageYOffset-17)) whichIt.top = ((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17; 
    return false;} 
    return false;  
    }   
    function dropIt(){     
    whichIt = null;     
    if(NS) window.releaseEvents (Event.MOUSEMOVE);  
    return true;             
     }                     
    <!-- DRAG DROP CODE -->  
    if(NS){    
    window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);
    window.onmousedown = grabIt;
    window.onmousemove = moveIt; 
    window.onmouseup = dropIt; 
    }              
    if(IE){                     
    document.onmousedown = grabIt;    
    document.onmousemove = moveIt;   
    document.onmouseup = dropIt;          
     }                         
    if(NS || IE) action = window.setInterval("heartBeat()",1)
    </script>
    </html>
      

  2.   

    我也刚好遇到楼主同样的问题正发愁呢,刚才实验了一下楼上的用div模拟的效果,瞒好的可惜就是自己css太差劲了,不太会修改,公司进度要求很紧,也没有让我们必须兼容firefox只能放弃了,以后再研究,谢谢楼主和楼上的兄弟
      

  3.   

    忘了一点nhpyliner(兄弟)的方法在firefox下,透明和拖拽不起作用.
      

  4.   

    我也刚好遇到楼主同样的问题正发愁呢,刚才实验了一下楼上的用div模拟的效果,瞒好的可惜就是自己css太差劲了,不太会修改,公司进度要求很紧,也没有让我们必须兼容firefox只能放弃了,以后再研究
    ====================================================
    现在多了个firefox浏览器,真是苦了程序员呀,发现很多IE上可以用的东西firefox上不能用,又要考虑通用性. 而且有些功能firefox暂时还没有支持, 要做到同时兼容两种浏览器,要多花很多时间.
      

  5.   

    先谢谢mbx615
    有时间再试试.
      

  6.   

    试了一下,mbx615给的效果并不好,而且修改比较麻烦.
      

  7.   

    modal=yes,在ff下曾经有效过
    据说后来因为有安全问题,又把它拿掉了。碰到一点问题,不仔细思量出对策,
    而是直接弃械投降,
    这真是ff的耻辱啊。
      

  8.   

    我在ff的论坛上查找过很多问题,有些问题是几年前的一直没有修改,他们的工程师主要是认为部分问题并不算bug,只是IE特有的功能,而ff没有而,他们的原则是符合w3c标准. 但是,对于程序员来说,还是感觉使用ie方便呀,很多功能都很完善.基本上能在ff上正常浏览的网页都能在ie上浏览,能在ie上看的网页就不一定能在ff上看了, 这就是IE强的地方. 当然个人认为firefox还是很有特色的,有些功能还是很有用的,比如查看源码的功能比IE好用很多,错误控制台等, 作为辅助浏览用途很用,它的发展很快.
      

  9.   

    基本上能在ff上正常浏览的网页都能在ie上浏览,能在ie上看的网页就不一定能在ff上看了, 这就是IE强的地方.
    ======================================================================
    仿佛不是这么理解“强”的吧?呵呵。
      

  10.   

    http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/dhtmlmodal.htm
      

  11.   

    我觉得比较讽刺吧...
    自称"标准"的ff很多页面看不了...
    但是IE是肯定能看的...
    我初装IE7的时候把user-agent改成firefox都没发现不妥...
    如果从用户角度...
    谁理你标准不标准啊...不妨碍我正常浏览就行了...可FF很多页面看不了...
    从程序员角度...
    一个功能相当不完善的标准要来干嘛...写着多累啊...
    插件吧...我反倒觉得IE的插件好用...
    微软官方的WebDeveloper也有,还有HTTPWatch,ie7pro...
    如果用Maxthon也可以自己写...我就写了个运行脚本的...脚本调试器就微软出的都甚至有3种:
    1.就叫脚本调试器的那个玩意
    2.Office带的脚本编辑器
    3.VS.NET
      

  12.   

    其实很多页面在ff中浏览不了,一个重要的原因是程序员习惯了ie的方便,用了一些ie特有的功能. 
    当近开发网页想兼容ff,发现ie有很多便于编程的功能,在ff中却没有, 要兼容ff得花费一些时间.
      

  13.   

    BILLSSJONE()  给的链接好象不错,有时间试一下. 项目急,部分功能只能暂时在ff下不支持了.
      

  14.   

    兼容firefox的话有很小问题要解决,比如以下这个到现在没有解决:
    http://community.csdn.net/Expert/topic/5676/5676847.xml?temp=.8711359
      

  15.   

    ie上可以运行的效果 在ff上就不可以 着急要时 只希望他们只用ie 不用ff
    呵呵