• 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()失效

  • 相关阅读:
    重置SQLSERVER表的自增列,让自增列重新计数
    【PLM】【PDM】60页PPT终于说清了PDM和PLM的区别;智造时代,PLM系统10大应用趋势!
    数据库设计规范
    不要听吹牛逼什么前端MVVM框架就是好,其实都是一帮没学好分层设计的搞出来的,让你彻底看清前端MVVM的本质
    SQL数据库日志清理
    1.3、安装MySQL、MySQLdb、Pycharm和其他软件
    1.2.2.3、Django虚拟目录作用以及文件说明
    nginx设置图片防盗链和白名单
    php-5.5.7升级,编译配置方法
    mysql函数CONCAT_WS()比CONCAT()更方便
  • 原文地址:https://www.cnblogs.com/cheche/p/1751604.html
Copyright © 2020-2023  润新知