`
longgangbai
  • 浏览: 7340075 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JS 在IE和FireFox中的区别(三)

阅读更多

(7)form表单提交问题
在jsp页面有一表单,如果表单里有两个按钮,两个按钮有不同事件方法,问题是 点击一个按钮会同时出发两个按钮的事件方法。
解决办法,看jsp页面中的两按钮标签周围是否被包含有<label>标签,如有删除<label>标签即可。
(8)DOM tree的小问题,
我就是想数一下这个table下有几个子nodes,就是body->table->tbody->然后是两个tr, 所以就应该是2啊,可是alert弹出来的是5,这么弄有什么不对吗
<script>
function p(n) {
var tablenode=n.getElementsByTagName("TABLE");
var tbodynode=tablenode[0].firstChild;
var urnode=tbodynode.childNodes;
for (var i=0;i<urnode.length;i++)
alert(urnode[i].nodeName)
alert(urnode.length);
}
</script>
<body>
<table><tbody>
<tr><td>cell 1</td></tr>
<tr><td>cell 2</td></tr>
</tbody></table>
<button onclick="p(document.body)">Press</button>
</body>
在ie中,只出现2个nodeName,都是TR,而在firefox中,出现5个nodeName,分别是: #text
TR #text TR #text

检查后,我将代码中的回车删除,代码如下:

<body>
<table><y><tr><td>cell 1</td></tr><tr><td>cell 2</td></tr></tbody></table>

<button onclick="p(document.body)">Press</button>

</body>

在firefox中,可以看到有2个TR了

 

在结构上,第一个表单和第二个表单不同的是第一个表单的子节点间有回车或者空格,而第二个表单则是一行写到尾。大家都应该想到了吧,IE是将一个完整标签作为一个节点。而 Firefox除了上述的的情况外,也把一个标签的结束符“>”到下一个标签的起始符“<”之间的内容(除注释外,包括任何的文字、空格、回 车、制表符)也算是一个节点了。而且这种节点也有它们自己独特的属性和值--nodeName="#text"。

 

在实际运用中,Firefox在遍历子节点时,在for循环里不妨加上:
if(childNode.nodeName=="#text") continue;
这样,便跳过不需要的操作,使程序运行的更有效率。

 

(9)不同浏览器javascript的getYear年份函数兼容问题

不同浏览器 JavaScript 的getyear年份函数兼容性问题

先举个例子
用 Firefox 上一些网站会看到这样的提示
现在时间是 106年8月8日

而用 ie 浏览器的话就显示正常的 2006年8月8日

原因就是 javascript 的兼容性问题

var today = new date();
var year = today.getYear();

在 Firefox 里面 getYear 返回的是 "当前年份-1900" 的值 (以前都如此)
而微软很NB的做了一个改动:
当today的年份大于等于2000的时候 直接把1900加上了 返回的 200X (而不是10X)
如:today年份是1999 返回99
    today年份是2000 返回2000

一个简单的解决是加一个判断:
year = (year<1900?(1900+year):year);//此方法适用IE7   试了不能用

也有另外的方法
通过 getFullYear getUTCFullYear 去调用
var year = today.getFullYear();//IE7无效 此方法可用并在IE与Firefox都可得到

 

(10)交换两行:

DOM定义了swapNode方法:node1.swapNode(node2) , 但是仅有IE正常使用,Firefox无法工作

可用下面函数来实现(两者都可)

function swapNode(node1,node2)

{

var parent = node1.parentNode;//父节点

var t1 = node1.nextSibling;//两节点的相对位置

var t2 = node2.nextSibling;

if(t1) parent.insertBefore(node2,t1);

else parent.appendChild(node2);

if(t2) parent.insertBefore(node1,t2);

else parent.appendChild(node1);

}

(11)fireEvent在IE中能用但在 Firefox中不能用

  

var obj=document.getElementById(“loaddate”);

 

obj.fireEvent(“onclick”);.   -------只能在IE可用

 

解决办法,都可用

      if(document.all)

         {

            obj.fireEvent("onclick");

         }

      else

        {    var   evtObj   =   document.createEvent('MouseEvents');   

            evtObj.initMouseEvent(   "click",   true,   true,   document.defaultView,   1,   0,   0,   0,   0,   false,   false,   true,   false,   0,   null);   

            obj.dispatchEvent(   evtObj   );

    }

(12)Firefox不支持innerText,改成innerHTML就可以了

(13)FireFox中类似 obj.style.height = imgObj.height 的语句无效
解决方法:
obj.style.height = imgObj.height + 'px';

 

(14)有关table处理问题

1):用集合获得表格对象的方法:tabobj.rows[0].cells[0];

2):修改对象的背景图片方法:

     obj.style.backgroundImage="url(图片路径)";

3):获得当前对象的下一个结点

   obj.firstChild.firstChild.nodeValue

    不能用obj.children[0];有待继续研究。

4)table中的bordercolor在Firefox中不能实现功能,必须用CSS实现

(16) iframe两者浏览器都可实现:

<iframe src="child1.html" name="ifm1" id="ifm1"

    allowtransparency="true" align="default" marginwidth="0"

    marginheight="0" frameborder="0" scrolling="no"

    width="100%"  

    onload="this.height=0;var fdh=(this.Document?this.Document.body.scrollHeight:this.contentDocument.body.offsetHeight);this.height=fdh">

This message is only visible to older browsers.</iframe>

(17)css 外部文件导入失效解决:

   导入方式:

    .STYLE1 {color: #FF0000}

@import url("/carryoa/js/img/jquery.xypform.css");

修改为link导入:

<link rel="stylesheet" type="text/css"

href="/carryoa/js/img/jquery.xypform.css">

(19)

1):用集合获得表格对象的方法:tabobj.rows[0].cells[0];

2):修改对象的背景图片方法:

     obj.style.backgroundImage="url(图片路径)";

3):获得当前对象的下一个结点

   obj.firstChild.firstChild.nodeValue

不能用obj.children[0];

分享到:
评论

相关推荐

    js在IE和fireFox的区别

    ### JavaScript在Internet Explorer (IE) 和 Firefox 中的区别与解决方案 #### 一、获取HTML元素的方式差异 1. **通过ID获取元素**: - **IE**:支持`document.getElementById`和`document.all`两种方式。 - ...

    javascript在IE和Firefox中兼容性问题

    本篇将主要探讨JavaScript在Internet Explorer (IE) 和Firefox之间的兼容性挑战,并通过给出的文件名列表解析这些测试用例所涉及的知识点。 1. **createDocument测试.html** 在IE和Firefox中,创建XML文档的方法...

    JavaScript在IE和Firefox(火狐)的不兼容问题解决

    标题与描述均聚焦于“JavaScript在IE和Firefox(火狐)的不兼容问题解决”,这表明文章旨在探讨并提供解决方案来处理在不同浏览器环境下的JavaScript兼容性问题,尤其是在Internet Explorer(IE)和Mozilla Firefox...

    Javascript在IE和FireFox中的兼容处理

    以上只是JavaScript在IE与Firefox中兼容性问题的一部分,实际开发中可能遇到更多细节。解决这些问题需要对两种浏览器的特性有深入理解,并使用条件注释、polyfills和现代JavaScript库(如jQuery)来确保代码在各种...

    js在IE和Firefox不同之处

    ### js在IE和Firefox不同之处 在Web开发中,JavaScript(简称JS)是实现网页交互性的核心语言之一。然而,由于不同的浏览器对于JS标准的支持程度有所差异,这往往会导致跨浏览器兼容性问题的出现。IE(Internet ...

    Javascript的IE和Firefox(火狐)兼容性

    ### Javascript的IE与Firefox(火狐)兼容性解决方案 在Web开发过程中,浏览器兼容性问题一直是开发者们关注的重点之一。由于不同的浏览器对于Web标准的支持程度存在差异,这导致了同样的代码在不同浏览器中的表现...

    Javascript的IE和Firefox兼容性参考

    JavaScript是一种广泛应用于网页开发的脚本语言,但在不同的浏览器中,其执行方式可能存在差异,特别是老版本的Internet Explorer(IE)和Firefox。由于历史原因,IE对某些特性有着独特的实现,而Firefox则遵循更...

    css和javascript在IE和Firefox中二十三个不同点

    CSS和JavaScript在Internet Explorer(IE)和Firefox这两个浏览器中存在诸多差异,这些差异主要体现在DOM操作、属性访问、事件处理等方面。以下是一些关键的不同点: 1. **文档对象模型(DOM)操作** - **form元素...

    js在IE与firefox的差异集锦

    而在Firefox中则需要使用addEventListener和removeEventListener方法,并将事件监听器的第三个参数设置为true,使其在捕获阶段触发。 5. 获取鼠标位置: 在IE中可以通过event对象的clientX和clientY属性来获取鼠标...

    Javascript在IE和FireFox中的不同表现

    JavaScript是一种广泛应用于Web开发的脚本语言,它在不同的浏览器中可能会有不同的行为和表现,尤其是在老版本的Internet Explorer(IE)和Firefox之间。这两个浏览器在处理JavaScript语法、DOM操作、CSS渲染等方面...

    Javascript的IE和Firefox兼容性问题集合

    以上只是JavaScript在IE和Firefox之间兼容性问题的一部分,实际开发中可能还会遇到更多细节问题。解决这些问题通常需要深入理解各浏览器的差异,并结合条件判断、库或框架等技术手段来实现跨浏览器的代码。在编写...

    IE和Firefox对JavaScript的兼容

    再者,CSS样式和JavaScript的交互在IE和Firefox上也有区别。IE有时会忽视标准的style属性,而是使用专有的currentStyle属性来获取元素的样式,而Firefox使用window.getComputedStyle()。此外,对于某些CSS属性,如...

    Ie和firefox的Js区别

    JavaScript是一种广泛用于网页开发的脚本语言,它在不同的浏览器中有不同的实现,其中最显著的区别在于Internet Explorer(IE)和Mozilla Firefox(Firefox)。以下是一些关键的区别点: 1. **对象问题** - **...

    mxGraph破解包含ie和firefox

    mxGraph是一款强大的...通过以上方法,开发者可以逐步解决mxGraph在IE和Firefox中的兼容性问题,实现更广泛的支持。不过,随着IE的逐渐淘汰,重点可能更多地转移到如何优化mxGraph在现代浏览器和移动设备上的体验。

    IE和firefox调试插件

    调试JavaScript是网页开发中的重要环节,无论是在IE还是Firefox中,这些插件都提供了强大的JS调试功能。你可以设置断点,查看变量值,跟踪调用栈,这极大地提高了调试效率。对于CSS和HTML,开发者可以直接在页面上...

    JS的IE和Firefox兼容性

    JavaScript在不同浏览器之间的兼容性问题一直是开发者面临的重要挑战,尤其是早期的Internet Explorer(IE)和Mozilla Firefox(MF)之间存在显著差异。以下是一些关键的兼容性问题及其解决方案: 1. **document....

    javascript和css在IE和Firefox中的不同点及解决兼容性的方案

    JavaScript 和 CSS 在不同的浏览器之间可能存在兼容性问题,尤其是在 Internet Explorer (IE) 和 Mozilla Firefox 这两个浏览器中。本文将详细探讨这些差异,并提供相应的解决策略,以确保网站在各种浏览器中都能...

    js在ie和FireFox下兼容问题汇总

    JavaScript 在不同浏览器之间的兼容性问题一直是开发者面临的重要挑战,尤其是IE和Firefox之间的差异。本文将详细探讨这些兼容性问题,并提供相应的解决方案。 1. `document.form.item` 问题: - 在IE中,可以通过...

Global site tag (gtag.js) - Google Analytics