JavaScript小技巧记录

来源:互联网 发布:java并发编程书籍 编辑:程序博客网 时间:2024/06/18 07:58
  • 技巧
    • loadXMLdoc问题
      loadXMLdoc("jsp");通过loadXMLdoc引用jsp,在jsp中不能包含js

    • IE8下修改Echarts无数据时的显示
      //IE8下修改Echarts无数据时的显示
      noDataLoadingOption: {

                  text: '暂无数据',
                  textStyle:{

                      fontFamily:'微软雅黑'
                  } ,

                  effect: function(params){
                      params.start = function(h){
                          h._bgDom.style.backgroundColor='#fff';
                          h._bgDom.style.textAlign='center';
                          h._bgDom.style.paddingTop='110px';
                          h._bgDom.style.color='#919191';
                          h._bgDom.style.font='normal normal 12px 微软雅黑';
                          h._bgDom.innerHTML=params.textStyle.text;

                      };
                      params.stop = function(h){
                          //有数据时不处理
                      };

                      return params;
                  },
                  effectOption: {
                      effect: { 
                      n: 0                           
                      }                       
                  }
              }

    • IE8下添加收藏夹问题
      IE8下添加收藏夹的时候会添加当当前页面,如果存在iframe,则会将iframe中的地址也存在链接中。当重新打开收藏夹中的链接的时候会直接跳转到iframe的最后一个页面。
      如果再iframe中设置登陆的话,从链接中打开会直接跳转到登陆成功页面。如果之前没有登陆,会获取不到登陆信息,可能有异常信息产生,需要对异常进行处理,下面是在jsp中对异常进行处理办法。
      try{

      //Here Is Code
      }catch(Exception e1){
          response.sendRedirect("login1.jsp");
          return;
      }
      附:此处中的response.sendRedirect()方法会跳转到指定的页面当中,根路径是:项目名/jsp,所以此处不需要做再加jsp。后面必须得加return ;,否则会导致执行后面代码报错。
      首先我们要明白用response.sendRedirect做转向的原理,它其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。
      <jsp:forward page=""/>则不同,它是直接在server做的,浏览器并不知道,也不和浏览器打交道,这从浏览器的地址并不变化可以看出。
      所以使用response.sendRedirect时就需要注意以下两点:
      1
      、在使用response.sendRedirect时,前面不能有HTML输出。
      这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSPSERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。
      如果报错说,一些信息已经被submitted”(原文忘了),那么,你就要注意看了,前面是不是有过多的HTML输出了。
      2
      、在response.sendRedirect之后,应该紧跟一句return;
      我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。

    • IE8Jquery生成html控件
      //如果要支持IE8,必须这样写,不能合并到一起
      var modalInfo=$("<h4>");

      modalInfo.attr("style","color:green;");