如何编写兼容性好的js之抛砖引玉

 最近负责调项目中的兼容性问题,因为原来开发时候只针对iE没有在FF下面测试过,其实原来也知道,因客户方没有要求,所以就没有做,最近客户方原来负责的项目主管换了,新来的要求蛮高的,其中兼容性就是其中一条。已经调了一半,目前发现的问题经过本人整理如下。不好之处,敬请指正,不甚感激。

 

    1:获取指定ID和Name的元素的方法

     document.getElementById
       document.getElementsByName
       document.all.
       document.getElementsByTagName
       document.getSelection
     第一个是IE和FF通用的,而第二个在IE和FF返回的结果,IE能得到结果,而FF得不到
  第三个是IE独有的,不建议使用
   如<div name='demo1'>dem o1</div>
      使用document.getElementByName('demo1')在IE下是可以得到对象的,而FF为null
  但是对于表单元素FF可以得到对象。
  
  2:操作select的方法
 
    下面的方法是在IE可以用
   var res=XMLHttpReq.responseXML.getElementsByTagName("res");
    var list = document.all.list;
        list.options.length=0;
        list.add(new Option("---请选择产品型号---",""));
        for(var i=0;i<res.length;i++){
         list.add(new Option(res[i].firstChild.data,res[i].firstChild.data));
        }

    通用的是如下
    var res=XMLHttpReq.responseXML.getElementsByTagName("res");
           var list = document.getElementById('list');
            list.options.length=0;
           list.options[list.length] = new Option("---请选择产品型号---","");
          for(var i=0;i<res.length;i++){
          list.options[list.length] = new Option(res[i].firstChild.data,res[i].firstChild.data);
         }


     3:操作滤镜的方法
   滤镜本来是IE独有的,w3c组织将其列入标准,ff从2.0开始支持
      if(currentID.filters){//ie 
          currentID.filters.alpha.opacity+=20;
      }else if(currentID.style){//ff  
       currentID.style.MozOpacity+=20; 
     }

 

   4:访问父节点的方法要用parentNode而不是用IE独有的parentElement,遵从dom标准操作规范即可

 

   5:操作xml的方式也不同
  无论是操作结点还是加载方式,参考网上相关的文章即可。
 

 

手把手教你学pcie--内存管理和保护机制(一):MPU与其他内存管理和保护机制详解 MPU(Memory Protection Unit)是一种专门用于 ​。,这些机制通常协同工作,形成多层防御体系,兼顾安全性、性能和灵活性。 阅读详情

相关推荐

数字IC后端PPA优化实战:Innovus中Timing一致性策略与Module Region布局技巧

本文深入探讨了数字IC后端设计中PPA优化的核心挑战,重点解析了Innovus与PrimeTime之间Timing不一致的根本原因。通过实战案例,详细介绍了在Innovus中设置Timing Margin、Derate以及RC Scale Factor等关键策略,以校准时序视图。同时,文章分享了利用Module Region进行物理布局规划的技巧,将关键模块约束在最优区域,并结合Group Path等进阶方法,有效提升时序收敛效率与PPA结果的可预测性。

f9g0h的博客 2687

编写兼容性JS代码

编写兼容性JS代码 前文介绍了:   1 DOM四个常用的方法   2 使用DOM核心方法完成属性填充 本篇主要介绍在JS中需要注意的几个地方,另外为了减小html与javascript的耦合使用java进行onclick方法编写。   其实javascript不是一门简单的语言,但是由于入门简单,很多人使用的时候,都是直接复制粘贴...

xingoo 339

Python手记-9:Python LXML库XPath的爬取晋江书目

1. lxml库 lxml是功能最丰富且易于使用的库,用于处理Python语言中的XML和HTML,还可实现WEB爬取,官文参考:https://lxml.de/,完整的PDF文档下载链接https://lxml.de/lxmldoc-4.5.0.pdf,但是阅读起来……em……怪自己不够聪明的样子。 Linux下安装lxml库:[root@chengyu ~]# pip3 instal...

成屿的专栏 4万+

Document 对象属性和方法的不兼容问题

.bind不兼容的问题 bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()第一个参数的值 Function.prototype.bind = function () { var fn = this, args = Array.prototype.slice.call(arguments), object = a...

qq_40920553的博客 494

保姆级教程:用STM32CubeMX给STM32F407配置RTC秒中断,并解决掉电时间丢失问题

本文详细介绍了如何使用STM32CubeMX为STM32F407配置RTC秒中断,并解决掉电时间丢失问题。通过硬件原理与软件配置的双视角解析,帮助开发者实现精确计时与时间持久化,适用于物联网设备和工业控制器等场景。

weixin_42519733的博客 136

ReelShort Android 逆向实战:Frida Hook 定位 sign 与 requestTime 算法

一个动态变化的 sign,如何从海量 so 逻辑中精准定位并完整复现?本文以海外短剧 App ReelShort 为例,实战拆解搜索、列表与详情接口的分析过程:从 Charles 抓包锁定关键参数,到 jadx 定位 native 函数,再借助 Frida Hook 验证加密结果;逐步还原 requestTime 的生成机制及 sign 的 HMAC-SHA256 签名逻辑。全文记录关键思路、踩坑与验证方法,带你建立一套可迁移的 Android 接口逆向分析流程。

weixin_64116813的博客 456

document.body和document.body的区别和兼容性&&js自定义弹框的方法

遮罩层其实就是两个z-index比较大的div 一个为div的遮罩层,一个为弹框内容 遮罩层获取整个网页文本的大小 Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); Math.max(document.documentElement.scrollHeight,document.body.sc

笔芯君 4689

从零解析:富斯i6遥控器与STM32的IBUS协议通信实战

本文详细解析了富斯i6遥控器与STM32通过IBUS协议通信的实战指南,涵盖硬件准备、协议解析、驱动实现及常见问题解决。特别适合机器人及智能小车开发者,提供低成本、高可靠性的无线控制方案,助力快速实现多通道控制功能。

weixin_29193359的博客 440

为何需要关心二进制兼容性?

作为开发者,我们经常都会使用各种优秀的开源库;与此同时,我们也可能是库的提供者,不管是我们提供给公司内部使用的库,亦或是个人主导或参与的各种开源项目。一个优秀的库固然有很多的的特质,在日...

淘系技术 6376

【LLC快速上手系列】LLC轻载时:开关频率 + 死区时间 联合优化!

轻载优化,频率别飞天,死区要有耐心。两手一起抓,效率高到笑。😎。

weixin_43199439的博客 1183

11、体内皮质功能的电压敏感染料成像技术

本文详细介绍了电压敏感染料成像(VSDI)技术在体内皮质功能研究中的应用。内容涵盖VSDI的技术起源、作用机制、信号特点与解读局限性,以及其在映射感觉皮质功能区方面的优势。文章对比了VSDI与电极记录和钙成像技术的差异,突出了其在高时空分辨率下监测神经元群体亚阈值活动的独特价值。同时,提供了完整的实验操作流程,包括手术步骤、染料应用、光学系统配置及数据分析方法,并总结了常见问题及其解决方案。随着基因靶向和多模态技术结合的发展,VSDI有望进一步提升信号特异性和空间精度,成为解析大脑网络动态的重要工具。

Apple的专栏 81

Web前端浏览器兼容初探,小生浅文抛砖引玉,期待高手攻破难关!

前言 浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台web开发同学往往容易选择忽略,而形成两个极端: 1 我最开始都是使用IE6,IE6上没问题,其它浏览器坑爹(多出现与前端后端一起搞的同学,小生2年前就这种状态,鼓励人家用ie6.。。。) 2 我要遵循标准,我只要ff就好,IE就是坑爹的玩意,我不必去理他(小生一年前的心态。。。) 现在看...

dee31670的博客 154

SXU—软件测试方法和技术-朱少民-第四部分 软件测试流程和规范-附考点

软件测试方法和技术-朱少民-第四章 软件测试流程和规范—这本书最后一部分的考点整理,考点分析

weixin_63597914的博客 1752

关于 css 编写的问题

[code="java"]关于 css 编写的问题   最近一直在做Css Lab,也一直在思考关于页面设计的技术问题,以前对Html+css+js的认识很片面,很多不知道,都是因为没有好好的去研究,去分析,去编写测试,今天主要说下关于Css编写的问题,希望大家多多留言,我是抛砖引玉。   Css和其他程序一样,都是有作用域这个概念,有全局、类局部作用这些方式。   举个例子:     p...

helloklzs 115

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JS中手动触发事件的方法

JS中手动触发事件的方法  (2011-04-11 09:42:57) 转载▼ 标签:  杂谈 分类: [技术]JavaScript  try             {                 //非IE                 var fireOnThis = document.getElementByI

likaiwalkman@csdn - Code Study Area 768

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

10个页面动效的js库,拿来即用,值得珍藏。

页面加交互动效可以提高用户体验和吸引用户的注意力,从而增强网站的吸引力和可用性。本文将会从动效价值和常用动效库两方面展开讲解。

贝格前端工场的博客 2118

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

由bootstrap-button.js谈js插件编写规范

bootstrap-button.js插件是一款基于jquery的为html原生的button扩展了一些简单功能的插件,用twitter bootstrap的朋友可能再熟悉不过了,只要向button标签添加一些额外的data属性,我们就能实现点击button出现loading文字以及模拟复选和单选等功能。 下面以bootstrap-button.js的源码为实例,谈一下js插件编写的一些基本规范...

weixin_30835933的博客 184

JavaScript之我见

在网站的开发过程中随时会使用JavaScript,但JavaScript随着游览器的不同而产生不同差异,既不兼容的情况。这里我以工作中遇到的JavaScript不兼容情况进行总结与分析。 一、日期 1) 显示日期的区别:IE:使用UTC Mozilla:显示GMT 注:UTC就是GMT,只是显示不同 2) 获取年 new Dat...

wangyun 167
上一篇: 请问哪里有免费的JSP空间啊,我想学习用啊
下一篇: 银行取钱一事
javaSCJ
博客等级 码龄19年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值