zoukankan      html  css  js  c++  java
  • 火狐浏览器(firefox)中js要注意的问题

    1.出现错误调用error方法或者ajax请求了多次,那么极有可能是异步请求的原因。

       添加   async  : false  ,

        -> async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。

        -> async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

    2.后台返回的dataType类型和前台js写的不一致会跳入error

       传的不是json格式的数据就不用写 dataType : 'json' ,

         json格式错误也会跳入error.{"test":1} 所以要注意格式。

         在不需要返回值的情况下,扔按模板格式,设置了dataType:"json",参数;这时候,ajax传值正确时,出现200返回成功状态下报错的特殊情况。

      3.url:'http://192.168.1.100:8080/Xxx

       如果你请求的数据不在本地或者不在同一服务器中,那么就可能是跨域问题,要用jsonp,即  dataType : 'jsonp' ,  当然这意思最基础的方法,jsonp和json的格式还是有点小区别的:  jsonp比json多了个方法,即  json= " json格式数据 ",jsonp= " 方法名(json格式数据)",至于跨域的详细的解释和解决方法找度娘吧。

         4. event.preventDefault();失效问题的解决办法

    /**
    *firefox----这段重新封装了event对象
    *在火狐浏览器上就可以用event对象了
    */
    function __firefox(){
    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
    window.constructor.prototype.__defineGetter__("event", __window_event);
    Event.prototype.__defineGetter__("srcElement", __event_srcElement);
    }
    function __element_style(){
    return this.style;
    }
    function __window_event(){
    return __window_event_constructor();
    }
    function __event_srcElement(){
    return this.target;
    }
    function __window_event_constructor(){
    if(document.all){
    return window.event;
    }
    var _caller = __window_event_constructor.caller;
    while(_caller!=null){
    var _argument = _caller.arguments[0];
    if(_argument){
    var _temp = _argument.constructor;
    if(_temp.toString().indexOf("Event")!=-1){
    return _argument;
    }
    }
    _caller = _caller.caller;
    }
    return null;
    }
    if(window.addEventListener){
    __firefox();
    }
      

    在右event参数传递的情况下,可以用下面的方法试试:(这个还未验证,如果不行使用上面的方法)

    function show (e){
        var event = document.all ? window.event : e;
            event.preventDefault();
    }

    不常见的情况:

      1.data没有写

        解决方法:data为空也一定要传"{}";不然返回的是xml格式的。并提示parsererror. data:"{}"。

      2.url路径有中文

        解决方法:去掉中文。

      3.传的数据格式ajax不支持

        解决方法:换成json或其他ajax支持的数据格式。

      4.字符编码不匹配

        解决方法:统一UTF-8。

    本文参考资料:

    1.https://blog.csdn.net/c_molione/article/details/85072235

    2.https://www.cnblogs.com/huxiuqian/p/10152166.html

    3.https://www.cnblogs.com/lu2527/p/10059951.html   (event.preventdefault()失效问题)

  • 相关阅读:
    把影响集中到一个点
    How to avoid Over-fitting using Regularization?
    适定性问题
    Numerical Differentiation 数值微分
    What Every Computer Scientist Should Know About Floating-Point Arithmetic
    Generally a good method to avoid this is to randomly shuffle the data prior to each epoch of training.
    What is the difference between iterations and epochs in Convolution neural networks?
    Every norm is a convex function
    Moore-Penrose Matrix Inverse 摩尔-彭若斯广义逆 埃尔米特矩阵 Hermitian matrix
    perl 类里的函数调用其他类的函数
  • 原文地址:https://www.cnblogs.com/imustun/p/10454730.html
Copyright © 2011-2022 走看看