zoukankan      html  css  js  c++  java
  • javascript问题积累

    1、判断iframe是否加载完成方法

    【动态创建】

    var iframe = document.createElement("iframe");
    iframe.src
    = "order.do?method=toUpdate&id="+id;
    if (iframe.attachEvent){//ie
    iframe.attachEvent(
    "onload", function(){
    alert(
    "Local iframe is now loaded.");
    });
    }
    else {//非ie
    iframe.onload
    = function(){
    alert(
    "Local iframe is now loaded.");
    };
    }
    document.body.appendChild(iframe);

    【静态创建】

    <iframe src="order.do?method=orderMemo" id="mainCon" onload="Local iframe is now loaded" ></iframe>

    2、innerHTML的一些问题

    【加载script标签】当使用innerHTML写入<script></script>标签的时候如果在此标签前面没有任何内容的时候ie是会忽略script标签的,而Moziila/Firefox 和 Opera是可以正常加载的,但是并不会兼容所有浏览器执行脚本的内容,所以最好的方法就是通过appendChild加载对象的方式。

    var srcs = '<script reload="1" src="http://192.168.1.43/uchome/api/uc.php?time=1276745495" type="text/javascript"><\/script>'.match(/src="[^"]*/g);
    var headScriptUC = document.createElement('script');
    var srcs = srcs.uclogin.match(/src="[^"]*/g);
    headScriptUC.src
    = srcs[0].substring(5,srcs[0].length);

    【ie,firefox】读取innerHTML的值是不同的,ie获取的innerHTML字符串中是不存在"与换行符号的,而firefox的读取是完全保留dom的格式的,所以在读取时的正则操作时一定要注意这一点。/<i\sid=["]?[0-9][^.]?["]?>/ 正则要多判断一下了

    3、keypress和keydown,keyup

    keydown事件:当用户按下键盘上面的一个键时会触发,用户一直按着这个键他就会持续触发。
    keypress事件:有一点点的不同,用户按着 一个字符键才触发,就是说用户按了一个能在屏幕上输出字符的按键keypress事件才会触发,比如我们往一个textarea里面输入字符。
    keyup 事件:很简单,当我们释放一个按键时候会触发。

    如果你想获取用户实际敲击的按钮,用keyDown事件来获取事件对象,并获取keyCode,这 在所有浏览器都行的通。

    如果你想获取用户输入的字符,那么就使用keypress来获取,然后获取charCode(火狐和 safari)或是keyCode(其他浏览器)。

    4、ie下img.onload()事件读取缓存时没有执行。

    不是IE没有触发onload事件,而是因为加载缓冲区的速度太快,以至于没有运行到img.onload的时候,onload事件已经触发了。这让我想 到了Ajax,我们在写xmlhttp的时候,都是先指定onstatechange的回调函数,然后再send数据的,道理是一样的。

    正确写法:

    var img = new Image;
    img.onload 
    = function(){
     //
    };
    img.src 
    = "aaa.jpg";

    5、form表单中的type=submit的id&name如果为关键字submit将导致form.submit()失效

  • 相关阅读:
    maven 的依赖包的版本更改之后,项目启动报错,相关联的资源没有在tomcat里面加载
    Maven更新后本地仓库jar后缀带有 lastUpdated
    spring+mybatis之声明式事务管理初识(小实例)
    java 详解类加载器的双亲委派及打破双亲委派
    jvm内存溢出区域和排查方法
    JVM中的新生代和老年代(Eden空间、两个Survior空间)
    什么情况下会发生堆内存溢出,栈内存溢出,结合实例说明
    投而死面试
    检查性异常
    多线程系列课程
  • 原文地址:https://www.cnblogs.com/cheche/p/1751604.html
Copyright © 2011-2022 走看看