Javascript 多浏览器兼容性问题及极速11选5方案

电脑杂谈  发布时间:2020-02-13 06:01:08  来源:网络整理

js中浏览器兼容性问题_js innertext 兼容_仿门户网站js相册画廊源码 支持缩略小图浏览

Javascript 多浏览器兼容性问题及极速11选5方案一、document.formName.item(”itemName”) 问题 问 题 说 明 : IE 下 , 可 以 使 用 document.formName.item( ” itemName ” ) 或 document.formName.elements ["elementName"] ; Firefox 下 , 只 能 使 用 document.formName.elements["elementName"]。 极速11选5办法:统一使用 document.formName.elements["elementName"]。 二、集合类对象问题 问题表明:IE 下,可以使用 () 或 [] 获取集合类对象;Firefox 下,只能使用 [ ]获取集合类 对象。 极速11选5办法:统一使用 [] 获取集合类对象。 三、自定义属性问题 问题表明: IE 下, 可以使用获得常规属性的方式来获得自定义属性, 也可以使用 getAttribute() 获取自定义属性;Firefox 下,只能使用 getAttribute() 获取自定义属性。

仿门户网站js相册画廊源码 支持缩略小图浏览_js innertext 兼容_js中浏览器兼容性问题

极速11选5办法:统一通过 getAttribute() 获取自定义属性。 四、eval(”idName”)问题 问题表明:IE 下,可以使用 eval(”idName”) 或 getElementById(”idName”) 来获得 id 为 idName 的 HTML 对象;Firefox 下,只能使用 getElementById(”idName”) 来获得 id 为 idName 的 HTML 对象。 极速11选5办法:统一用 getElementById(”idName”) 来获得 id 为 idName 的 HTML 对象。 五、变量名与某 HTML 对象 ID 相同的问题 问题表明:IE 下,HTML 对象的 ID 可以成为 document 的下属对象数组名直接使用,Firefox 下则不能;Firefox 下,可以使用与 HTML 对象 ID 相同的变量名,IE 下则不能。 极速11选5办法:使用 document.getElementById(”idName”) 代替 document.idName。最好不要 取 HTML 对象 ID 相同的变量名,以避免出错;在声明变量时,一律加上 var 关键字,以避免 歧义。

js innertext 兼容_仿门户网站js相册画廊源码 支持缩略小图浏览_js中浏览器兼容性问题

六、const 问题 问题表明:Firefox 下,可以使用 const 关键字或 var 关键字来定义常量;IE 下,只能使用 var 关键字来定义常量。 极速11选5办法:统一使用 var 关键字来定义常量。 七、input.type 属性问题问题表明:IE 下 input.type 属性为只读;但是 Firefox 下 input.type 属性为读写。 极速11选5方法:不设置 input.type 属性。如果需要应设置,可以先隐藏原本的 input,然后在同 样的位置再插入一个新的 input 元素。 八、window.event 问题 问题说明:window.event 只能在 IE 下运行,而不能在 Firefox 下运行,这是因为 Firefox 的 event 只能在事故出现的现场使用。 极速11选5办法:在事故出现的函数上加上 event 参数,在方程体内 (假设变量为 evt) 使用 var myEvent = evt?evt:(window.event?window.event:null) 示例: <input type="button" onclick="doSomething(event)"/> <script language="javascript"> function doSomething(evt) { var myEvent = evt?evt:(window.event?window.event:null) ... } 九、event.x 与 event.y 问题 问题表明:IE 下,even 对象有 x、y 属性,但是没有 pageX、pageY 属性;Firefox 下,even 对象有 pageX、pageY 属性,但是没有 x、y 属性。

js中浏览器兼容性问题_仿门户网站js相册画廊源码 支持缩略小图浏览_js innertext 兼容

极速11选5方法:var myX = event.x ? event.x : event.pageX; var myY = event.y ? event.y:event.pageY; 如果考虑第 8 条难题,就改用 myEvent 代替 event 即可。 十、event.srcElement 问题 问题表明:IE 下,even 对象有 srcElement 属性,但是没有 target 属性;Firefox 下,even 对 象有 target 属性,但是没有 srcElement 属性。 极速11选5办法:使用 srcObj = event.srcElement ? event.srcElement : event.target; 如果考虑第 8 条难题js中浏览器兼容性问题,就改用 myEvent 代替 event 即可。 十一、window.location.href 问题 问题说明: IE 或者 Firefox2.0.x 下,可以使用 window.location 或 window.location.href ; Firefox1.5.x 下,只能使用 window.location。 解 决 方 法 : 使 用 window.location 来 代 替 window.location.href 。

仿门户网站js相册画廊源码 支持缩略小图浏览_js中浏览器兼容性问题_js innertext 兼容

当 然 也 可 以 考 虑 使 用 location.replace()方法。 十二、模态和非模态窗口问题 问题表明: IE 下, 可以借助 showModalDialog 和 showModelessDialog 打开模态和非模态窗口; Firefox 下则不能。 极速11选5办法:直接使用 window.open(pageURL,name,parameters) 方式开启新窗口。如果必须将子窗口中的参数传递回父窗口, 可以在子窗口中使用 window.opener 来访问父窗 口 。 如 果 需 要 父 窗 口 控 制 子 窗 口 的 话 ,使 用 var subWindow = window.open(pageURL,name,parameters); 来获取新开的窗口对象。 十三、frame 和 iframe 问题 以以下的 frame 为例: (1)访问 frame 对象 IE:使用 window.frameId 或者 window.frameName 来访问这个 frame 对象; Firefox:使用 window.frameName 来访问这个 frame 对象; 极速11选5办法: 统一使用 window.document.getElementById(” frameId” ) 来访问这个 frame 对象; (2)切换 frame 内容 在 IE 和 Firefox 中 都 可 以 使 用 window.document.getElementById( ” frameId ” ).src = “webjx.com.html”或 window.frameName.location = “webjx.com.html”来切换 frame 的内 容; 如果必须将 frame 中的参数传回父窗口js中浏览器兼容性问题,可以在 frame 中使用 parent 关键字来访问父窗口。

十四、body 载入问题 问题表明: Firefox 的 body 对象在 body 标签没有被浏览器完全读入之前就存在; 而 IE 的 body 对象则需要在 body 标签被浏览器完全读入之后才存在。 [注] 这个问题已经实际验证,待验证后再来修改。 [注] 经验证,IE6、Opera9 以及 FireFox2 中不存在上述弊端,单纯的 JS 脚本可以访问在脚本 之前已经载入的所有对象跟元素,即使这个元素还没有载入完成。 十五、事件委托方式 问题表明:IE 下,使用 document.body.onload = inject; 其中 function inject()在这之前未被实 现;在 Firefox 下,使用 document.body.onload = inject(); 解 决 方 法 : 统 一 使 用 document.body.onload=new Function('inject()'); 或 者 document.body.onload = function(){/* 这里是代码 */} [注意] Function 和 function 的区分 十六、访问的父元素的差别 问题表明: 在 IE 下, 使用 obj.parentElement 或 obj.parentNode 访问 obj 的父结点; 在 firefox 下,使用 obj.parentNode 访问 obj 的父结点。

极速11选5办法:因为 firefox 与 IE 都支持 DOM,因此统一使用 obj.parentNode 来访问 obj 的父结 点。 十七、innerText 的问题. 问题表明:innerText 在 IE 中能正常工作,但是 innerText 在 FireFox 中仍不行。极速11选5办法:在非 IE 浏览器中使用 textContent 代替 innerText。 示例: if(navigator.appName.indexOf("Explorer") >-1){ document.getElementById('element').innerText = "my text"; } else{ document.getElementById('element').textContent = ";my text"; } [注] innerHTML 同时被 ie、firefox 等浏览器支持,其他的,如 outerHTML 等只被 ie 支持,最 好不用。 十八、Table 操作问题 问题说明:ie、firefox 以及其他浏览器对于 table 标签的操作都各不相同,在 ie 中不允许对 table 和 tr 的 innerHTML 赋值,使用 js 增加一个 tr 时,使用 appendChild 方法也不管用。

document.appendChild 在往表里插入行时 FIREFOX 支持,IE 不支持 极速11选5方法:把行插入至 TBODY 中,不要直接插入至表 极速11选5方式: //向 table 追加一个空行: var row = otable.insertRow(-1); var cell = document.createElement("td"); cell.innerHTML = ""; cell.className = "XXXX"; row.appendChild(cell); [注] 建议使用 JS 框架集来操作 table,如 JQuery。 十九、对象宽高赋值问题 问题表明:FireFox 中类似 obj.style.height = imgObj.height 的短语无效。 极速11选5办法:统一使用 obj.style.height = imgObj.height + ‘px'; 二十、setAttribute('style','color:red;') FIREFOX 支持(除了 IE,现在所有浏览器都支持),IE 不支持 极速11选5方法:不用 setAttribute('style','color:red') 而用 object.style.cssText = ‘color:red;'(这写法也是例外) 最好的办法是前面种方式都用上,万无一失 二一、类名设置 setAttribute('class','styleClass') FIREFOX 支持,IE 不支持(指定属性名为 class,IE 不会设置元素的 class 属性,相反只使用 setAttribute 时 IE 自动识 CLASSNAME 属性) 极速11选5办法:setAttribute('class','styleClass') setAttribute('className','styleClass') 或者直接 object.className='styleClass'; IE 和 FF 都支持 object.className。

二二、用 setAttribute 设置事件 var obj = document.getElementById('objId'); obj.setAttribute('onclick','funcitonname();'); FIREFOX 支持,IE 不支持 极速11选5方法: IE 中需要用点记法来引用所需的事件处理程序,并且应用赋予匿名函数 如下: var obj = document.getElementById('objId'); obj.onclick=function(){fucntionname();}; 这种方式所有浏览器都支持 二三、建立单选钮 IE 以外的浏览器 var rdo = document.createElement('input'); rdo.setAttribute('type','radio'); rdo.setAttribute('name','radiobtn'); rdo.setAttribute('value','checked'); IE: var rdo =document.createElement(”<input name=”radiobtn” type=”radio” value=”checked” />”); 极速11选5方法: 这一点区别和中间的都不一样。这次完全不同,所以找不到共同的方法来缓解,那么只有 IF-ELSE 了 万幸的是, IE 可以辨识出 document 的 uniqueID 属性, 别的浏览器都不可以识别出这一属性。 问题极速11选5。


本文来自电脑杂谈,转载请注明本文网址:
http://xinshanjie.com/a/jisuanjixue/article-140618-1.html

    相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 冯海峰
      冯海峰

      装备落后的体现以及人员素质低于日本人的体现

    • 雷帅鹏
      雷帅鹏

      远远不如拉森号或者我们的海口号

    热点图片
    拼命载入中...