js操作标签属性,IE与Firefox有区别

来源:互联网 发布:mac系统常用快捷键 编辑:程序博客网 时间:2024/06/05 19:54

IE和Firefox当中,js操作会有不同,我们了解这些可以适当解决浏览器兼容性的问题。

1、js操作div的style属性

<div id="divtest" style="width: 400px; height: 400px; display:block;">div测试区域</div><input type="button" value="点击" onclick="take();"/>

<script language="javascript">    var take = function(){        var divObj = document.getElementById("divtest");        //Firefox认 IE不认        divObj.style="width: 400px; height: 400px; display:none;";        //IE、Firefox 都认        divObj.style.display="none";    }</script>

2、创建一个Element

通用的写法为createElement("div")

IE中也可以这样写

createElement("<div style='color:#FFFFFF'>");
但Firefox不认

3、给element.style.width赋值必须写成24px,只写数字24的话,FireFox会不认,IE里都可以
4、在使用Element,并给其绑定了onclick、onmouseover、onmousedown、onmouseout等事件

element.onclick = function() { alert("hello kitty"); };
时,需注意将此元素添加到上级元素上时要用appendChild,

不可以在上级中使用innerHTML操作,这样会使事件无效。

5、动态添加css代码

IE: 复制内容到剪贴板

cssStr = "p { color:#FF0000;} a { font-size:9pt;}";var style = win.document.createStyleSheet();style.cssText = cssStr;
FireFox: 复制内容到剪贴板

cssStr = "p { color:#FF0000;} a { font-size:9pt;}";var style = win.document.createElement("style");style.type = "text/css";style.innerHTML = cssStr;win.document.getElementsByTagName("HEAD").item(0).appendChild(style); 
6、table在后面添加加行或列,

通用写法insertRow(-1),insertCell(-1)
IE中insertRow(),insertCell()这样写也可以,Firefox不认

7、警告对话框alert(),

IE中书写时无参数则默认参数为空字符串,

Firefox中则必须输入参数,传空参数则要写成alert("");

8、IE中的width、height与Firefox中概念不同,

IE中width=FireFox中的width+2*borderWidth+2*Padding

9、获得事件和事件源
IE:

    事件:window.event
    事件源:window.event.srcElement
FireFox:

    事件:arguments.callee.caller.arguments[0]
    事件源:arguments.callee.caller.arguments[0].target

10、在选中区域粘贴HTML
IE: 复制内容到剪贴板

var r = window.document.selection.createRange();range.pasteHTML("HTML代码");
FireFox: 复制内容到剪贴板

var r = window.getSelection().getRangeAt(0);var oFragment = r.createContextualFragment(“HTML代码”);r.deleteContents();r.insertNode(oFragment); 
11、document.getElementById方法在Firefox与IE中的区别
如下,有一name="txtVersion"的text控件:
<div> <input type="text" name="txtVersion" size="15" value="Version" maxlength="25"> </div> 
根据上面信息,我们要用JS获得其控件中的值,我们这样写:
var strVersion= document.getElementById("txtVersion").value;
上面的写法没错,在以IE为内核的浏览器中是正确的,但是Firefox对此要求的很严格,上面代码不能通过。在Firefox中,用document.getElementById方法,一定要为控件加上id=“txtVersion”属性,如下:
<div><input type="text" name="txtVersion" id="txtVersion" size="15" value="Version"maxlength="25"></div> 

12、js获取日期属性

在firefox或者chrome下,以下js怎么获得的年分是111,而不是2011。

var date=new Date();//只在IE下正确var year=date.getYear();

要用getFullYear()

//IE、Firefox都正确var year=date.getFullYear(); alert(year);