zoukankan      html  css  js  c++  java
  • js兼容来自蓝色理想

    出下面写写我这段时间的一些心得,主要介绍兼容IE和FireFox方面,Opera9.0前的版本好像N多东西不支持,暂时不介绍,Opera9.0以后的版本在Javascript解释方面和FireFox比较接近。
    我介绍的都是一些细节方面的东西,侧重于写一些不常见的情况,想到新的我会持续补充:
    1、创建一个Element,通用的写法为createElement("div")
       IE中也可以这样写createElement("<div style='color:#FFFFFF'>"),但Firefox不认
    2、IE中的width、height与Firefox中概念不同,IE中width=FireFox中的width+2*borderWidth+2*Padding
       参见:http://help.powereasy.net/Template/WEB/1557.html
    3、动态添加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);
    4、table在后面添加加行或列,通用写法insertRow(-1),insertCell(-1)
       IE中insertRow(),insertCell()这样写也可以,Firefox不认
    5、警告对话框alert(),IE中书写时无参数则默认参数为空字符串,Firefox中则必须输入参数,传空参数则要写成alert("");
    6、给element.style.width赋值必须写成24px,只写数字24的话,FireFox会不认,IE里都可以
    7、在使用Element,并给其绑定了onclick、onmouseover、onmousedown、onmouseout等事件
        element.onclick = function() { alert("hello kitty"); };
       时,需注意
       将此元素添加到上级元素上时要用appendChild,不可以在上级中使用innerHTML操作,这样会使事件无效
    8、获得事件和事件源
       IE:事件:window.event
          事件源:window.event.srcElement
       FireFox:事件:arguments.callee.caller.arguments[0]
                  事件源:arguments.callee.caller.arguments[0].target
    9、在选中区域粘贴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);

    转载请注明出处[http://samlin.cnblogs.com/

    欢迎关注本人公众号:

    作者赞赏
  • 相关阅读:
    [Effective C++ --009]确定对象被使用前已先被初始化
    [Effective C++ --008]别让异常逃离析构函数
    [Effective C++ --007]为多态基类声明virtual析构函数
    [Effective C++ --006]若不能使用编译器自动生成的函数,就该明确拒绝
    [Effective C++ --005]了解C++默默编写并调用哪些函数
    [000]socket通信--server和client实现的简单例子
    [014]模板-模板实参推导
    [013]模板-非类型模板参数
    [012]泛型--lambda表达式捕获
    U3d keyCode值对应的按键
  • 原文地址:https://www.cnblogs.com/samlin/p/1328319.html
Copyright © 2011-2022 走看看