zoukankan      html  css  js  c++  java
  • 【转】JS兼容Firefox

     打开TOOLS -> dom inspector , 左侧选中某个控件后, 右侧可以选择 JAVASCRIPT OBJECT
      通过自带工具调试javascript
      TOOLS -> JavaScript Console
      打开所有js警告:
      在地址栏里录入:about:config
      双击,设置 javascript option restict 打开为true 能够看到很多警告,利于纠错
      ☆ 关于调试JS的tip
      调试js时,经常受缓存的影响,页面不会加载最新的代码,为此解决如下:
      在新页面里打开原来的地址,关闭原来的页面,ok了.
      以上方法在IE和FF下都有效.
      ☆ IE -> firefox js类
      △ document.all -> document.getElementById
      并且控件尽量用id,而不是name标识
      为了兼容旧代码,参考下面的函数, 把document.all 替换为 document_all即可
      function document_all(objName,doc){
      if (!doc) doc = document;
      var obj;
      obj = doc.getElementById(objName);
      if (!obj) obj = doc.getElementsByName(objName)[0];
      return obj;
      }
      提示:
      如果控件只有name,没有id, 用getElementById时:
      IE:也可以找到对象
      FF:返回NULL
      △ 判断对象是否是object的方法应该为
      if( typeof 对象变量 == "object")
      而不是 if(对象变量 == "[object]")
      △ eval(对象名称) -> document.getElementById
      FF支持eval函数
      △ 通过id直接调用对象
      name.value = ""
      改为
      document.getElementById("name").value = ""
      △ window.event 的改造, firefox和opera会在调用函数时传入event对象,
      ie用全局对象window.event,可以修改事件处理函数,接收event对象
      function editmask_keydown(event){
      event = event || window.event;
      这样定义对系统改动比较大, 所以从底层转换处理,可能更好一些
      参考 ie_to_w3c.js
      △
      mX = event.x ? event.x : event.pageX;
      △ 不支持onpropertychange事件
      △ obj.insertAdjacentElement("beforeBegin",objText);
      改为用
      obj.parentNode.insertBefore(objText,obj);
      △ createElement不支持HTML代码
      用document.write(esHTML); 可以解决一部分情况
      △ innerText -> textContent
      △ 对象名称中的$改为_
      objName = "t1$spin"
      改为
      objName = "t1_spin"
      △ 事件名称和注册方式的变化
      this.selYear.addEventListener("blur", myBlur, false);
      △ FF里设置Attribute为某个对象,然后再取出来,这时候对象的属性都丢失了?
      objText.setAttribute("dropdown_select",obj);
      alert(obj.id) //正确的名字
      var objxx = objText.getAttribute("dropdown_select");
      alert(objxx.id) //null
      在IE下没有问题, FF对setAttribute来说,第2个参数都是字符串型的!!!

  • 相关阅读:
    iOS 9适配技巧(更新版)
    VC/MFC 在ListCtl 控件中随鼠标移动提示单元格信息
    VC++ 编译libcurl 支持SSL,GZIP
    qt使用动态库(DLL)
    解决修改mysql的data_dir所引发的错误
    Mybatis实战之TypeHandler高级进阶
    Mybatis实战之自定义TypeHandler处理枚举
    shell编程其实真的很简单(五)
    shell编程其实真的很简单(四)
    shell编程其实真的很简单(三)
  • 原文地址:https://www.cnblogs.com/luofuxian/p/2377468.html
Copyright © 2011-2022 走看看