zoukankan      html  css  js  c++  java
  • IE 和 FireFox 对 DOM 支持的差异

    1、document.getElementById的差异

    请在 IE 和 FireFox 分别打开 包含以下代码的页面。

    <html>
    <head>
    <script type="text/javascript">
    function getValue()
    {
      var x=document.getElementById("frmTest")
     
      if (x)
        alert(x.innerHTML)
      else
        alert("不能找到frmTest") 
    }
    </script>
    </head>

    <body>
      <FORM onsubmit="return false" method=post name="frmTest">
       <INPUT TYPE="Text" NAME="txtInput" value="123">
      </FORM>
      <BUTTON name= "btnTest" onclick="getValue()">测试</BUTTON>
    </body>
    </html>

    点击“测试”按钮,

      在 IE 中显示的内容是: <INPUT TYPE=Text NAME=txtInput value=123>

      在 FireFox 中显示的内容却是:不能找到frmTest

    实践表明,FireFox 对DOM 的处理比 IE 更严格更严谨(IE默认做了一些特别的转换)。因此为了提高浏览器处理getElementById的兼容性,应该在编写 HTML 时,元素的id 和 name 都应该设置上。

    以上代码,修改成   <FORM onsubmit="return false" method=post name="frmTest" id="frmTest"> ,那么点击“测试”按钮,得到的结果将是我们所期待的。

    代码在IE8, FF4,FF5,测试通过。

    2、IE8 的调试

        对于使用JavaScipt 动态改变元素事件处理函数的,在IE8 调试界面里的HTML树中是无法看见的,如以下代码

    <html>
    <head>
    <script type="text/javascript">
    function getValue()
    {

      var btn=document.getElementById("btnTest")
      if (btn)
      {
        alert(btn.outerHTML)
       
        btn.value = "测试2"
        btn.onclick=function(){GetValue2()}
      }
      else
        alert("不能找到btnTest")
     
    }

    function GetValue2()
    {
      var btn=document.getElementById("btnTest")
      if (btn)
      {
       alert(btn.outerHTML)
      }
       
    }
    </script>
    </head>

    <body>
      <FORM onsubmit="return false" method=post name="frmTest" id="frmTest">
       <INPUT TYPE="Text" NAME="txtInput"  value="123">
      </FORM>
      <BUTTON id= "btnTest" name="btnTest" onclick="getValue()">测试</BUTTON>
    </body>
    </html>

    当点击"测试"按钮,结果显示为  <BUTTON id= btnTest name=btnTest onclick=getValue()>测试</BUTTON>

    当点击"测试2"按钮,结果显示为  <BUTTON id= btnTest name=btnTest>测试2</BUTTON>

    3、outerHTML

       outerHTML不是标准HTML的元素属性,是 IE 自己扩展的, FirefFox 不支持outerHTML。

  • 相关阅读:
    填坑!!!virtualenv 中 nginx + uwsgi 部署 django
    树的遍历与递归
    Python 函数的参数
    virtualbox安装增强功能时【未能加载虚拟光盘】
    深入理解Python中的生成器
    Genymotion下载慢或者下载失败的解决办法
    Python3 多线程的两种实现方式
    Java 多线程
    关于"裁员与面试"的个人感悟吧
    三、由简单对象组装复杂实例的模式:建造者模式
  • 原文地址:https://www.cnblogs.com/finema/p/2101241.html
Copyright © 2011-2022 走看看