需要javascript跨浏览器解决方案?

时间:2010-11-18 06:12:48

标签: javascript

这里我给我的javascript,它适用于IE但在FireFox中无法正常工作。所以请告诉我在我的javascript中要改变什么来在Firefox中正确运行它。

这是我的代码

<html xmlns="http://www.w3.org/1999/xhtml" >  
    <head id="Head1" runat="server">  
        <title>Untitled Page</title>  
        <script type="text/javascript" language="javascript">

            var modalWindow = null;
            function drawDiv() 
            {
                var txt = document.getElementById('TextBox1');
                var dime = new Dimension(txt);
                modalWindow = document.createElement('div');
                modalWindow.style.position = 'absolute';
                modalWindow.setAttribute("align", "center");
                modalWindow.setAttribute("vertical-align", "middle");
                modalWindow.innerHTML = '<p>hello...</p>';
                modalWindow.style.left = dime.x;
                modalWindow.style.top = dime.y;
                modalWindow.style.width = dime.w;
                modalWindow.style.height = dime.h;
                modalWindow.style.backgroundColor = '#C0C0C0';
                document.body.appendChild(modalWindow);
                return false;
            }

            function hider(whichDiv) 
            {
                document.getElementById(modalWindow).style.display = 'none';
            }

            function Dimension(element) 
            {
                this.x = -1;
                this.y = -1;
                this.w = 0;
                this.h = 0;
                if (element == document) 
                {
                    this.x = element.body.scrollLeft;
                    this.y = element.body.scrollTop;
                    this.w = element.body.clientWidth;
                    this.h = element.body.clientHeight;
                }
                else if (element != null) 
                {
                    var e = element;
                    var left = e.offsetLeft;
                    while ((e = e.offsetParent) != null) 
                    {
                        left += e.offsetLeft;
                    }
                    var e = element;
                    var top = e.offsetTop;
                    while ((e = e.offsetParent) != null) 
                    {
                        top += e.offsetTop;
                    }
                    this.x = left;
                    this.y = top;
                    this.w = element.offsetWidth;
                    this.h = element.offsetHeight;
                }
            }
       </script>  
   </head>  
   <body>  
<div>
<form id="form1" runat="server">

   <asp:TextBox ID="TextBox1" runat="server" Height="180px" Style="left: 307px; position: relative;  
       top: 264px" TextMode="MultiLine" Width="432px"></asp:TextBox>
    <asp:Button ID="Button1" runat="server"  
        Text="Button" OnClientClick=" return drawDiv()"  />  
</form>
</div> 
</body>  
</html>  

1 个答案:

答案 0 :(得分:1)

使用

            modalWindow.style.left = dime.x + "px";
            modalWindow.style.top = dime.y + "px";
            modalWindow.style.width = dime.w + "px";
            modalWindow.style.height = dime.h + "px";

我的意思是在尺寸之后加上“px”..否则firefox将无法理解你的单位类型:))