整个html文件如下所示,放在iis目录下,用
http://localhost/H1.htm

http://192.168.12.60/H1.htm
得到的结果竟然不同,localhost能新增一行记录,而用ip的就不能新增
想请教大侠,为什么localhost与ip访问,js的执行情况会不同呢?另外,除去js问题,2个页面显示的样式也不同,比如table的位置明显不同,这又是为什么呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
    <script type="text/javascript">
        function addrow() {
            var tb = document.getElementById("tb1");
            var tr = AddTR(tb); //.insertRow();            var td = AddTD(tr);
            td.innerHTML = "addrow1";            td = AddTD(tr);
            td.innerHTML = "addrow2";
        }
        
        function AddTR(tb) {
            if (tb.tagName && tb.tagName == 'TABLE') {
                // var tr = tb.insertRow();
                //var tbody = tb.childNodes[0];
                var tbody = null;
                for (var i = 0; i < tb.childNodes.length; i++) {
                    if (tb.childNodes[i].tagName == 'TBODY') {
                        tbody = tb.childNodes[i];
                        break;
                    }
                }
                //if (tbody == null)
                //    return null;
                var tr = document.createElement('TR');
                //tbody.appendChild(tr);    // 用这一句没有问题,但是因为代码被我注释了,忘记了以前是不是因为这句代码出过问题
                tb.appendChild(tr);         // 问题就出在这一句
                //tbody.insertAdjacentElement('beforeEnd', tr);
                return tr;
            }
            return null;
        }        function AddTD(tr) {
            if (tr.tagName && tr.tagName == 'TR') {
                // var td = tr.insertCell();
                var td = document.createElement('TD');
                tr.appendChild(td);
                return td;
            }
            return null;
        }        </script>
</head>
<body onload="addrow();">
        <table id="tb1" border="1" cellpadding="0" cellspacing="0">
            <tr>
                <th>标题1</th>
                <th>标题2</th>
            </tr>
        </table>
</body>
</html>

解决方案 »

  1.   

    楼上的2位兄弟,当然确定ip是本机的,
    我甚至在另外2台机器上测试,也都是用本地IP注:IE8,Windows2003
    如果是同样环境,你可以放在iis下测试一下
      

  2.   

    检查一下hosts文件有没有特殊设置?
      

  3.   

    刚刚在IE7和IE6下测试了一下,发现都一样,也不会新增行。
    在另外一台IE8下再次测试,还是出现同样问题。注:hosts文件绝对没有问题(俺也当过网管,所以请大家排除网络之类情况)还有就是上周IE6、7都正常,能新增行,不知道是不是上周微软出的那些补丁造成的呢?
      

  4.   

    可能是浏览器 IE8 的问题。
    IE8有个功能。可以选择按照IE7或IE8不同的版本来访问页面的。
    IE7与IE8打开同一页面,显示会有点差异。
      

  5.   

    发现IE8确实有个兼容性视图设置,把下面的勾去掉后,2种方式显示就一样了。奇怪的是,上周以前IE6和IE7都能正常显示,现在就不能正常了。
      

  6.   

    addRow()加一句 tb.outerHTML = tb.outerHTML 即可        function addrow() {
                var tb = document.getElementById("tb1");
                var tr = AddTR(tb); //.insertRow();            var td = AddTD(tr);
                td.innerHTML = "addrow1";            td = AddTD(tr);
                td.innerHTML = "addrow2";
                tb.outerHTML = tb.outerHTML
            }
      

  7.   

    暂时把
    tb.appendChild(tr); 
    删除,改回:
    tbody.appendChild(tr);那个样式变化的问题,就是因为IE8的兼容性视图造成了。
    默认情况下,localhost不用兼容性视图
    而Intranet站点使用了兼容性视图,造成样式显示不同,JS的解析也不太一样了。
      

  8.   

    策略不一样。localhost是本机, Ip 会认为是局域网或者是Internet