ie-js 问题集

window.onload(直接说发现的问题即结论)

window.onload,在google里面先执行创建页面布局,没有问题,在ie执行有问题,因为他没有先执行页面布局,然后我们js,jq都获取不到值,个人猜测:
1.micosoft已经放弃了ie浏览器,不进行更新了,然后依然让onload的函数第一个执行。
解决方案:我们只要去掉onload就可以以js的执行顺序执行了

添加事件与与dom操作并行

 var input = document.createElement("input");
        input.type = "file";
        input.click();
        input.onchange = function (){
    
    };

这段代码在google上面执行时没有问题的,ie和edge(chorme内核)都有问题,为什么呢?请看下面代码

 var input = document.createElement("input");
        input.type = "file";
        input.onchange = function (){
    
    };
         input.click();

这段代码不管是哪个浏览器都没问题,为什么回产生区别呢,大家可能还记得async这个函数,类似ajax的异步同步问题,第一个是因为先给他点击,在google中点击的时候是异步的,所有他会立刻执行谈价onchange事件,但是在ie中是同步的,点击这个操作执行,当用户吧把file上传以后才添加了onchange事件。所以大家code的时候要注意js的问题

ie浏览器不支持js的直接使用style

      var img = document.createElement("img");
      img.style = 'height:5%;width:20%';

这段代码可以在google上运行,但是在ie上是用不了的

      var img = document.createElement("img");
      img.style.height='5%';
      img.style.width='20%';

需要使用这样的写法

ie ajax不提交

ie的缓存做的不好,为了防止ajax不停的提交,有时候会不执行,直接返回。当传递的参数值相同时ajax会不执行。解决方案

       $.ajax({
    
    
        url:"../user/getuser",
        async: false,
        cache: false,//禁用缓存
        type: "get",
        success: function (data) {
    
    

或者

       $.ajax({
    
    
       //加随机数,每次的url传参都不同
        url:"../user/getuser?random="+Math.random(),
        async: false,
        cache: false,//禁用缓存
        type: "get",
        success: function (data) {
    
    

附加 chrome session失效

最近做项目都是使用chrome浏览器,每次打开以后也不关,等第二天开机还是原来的样子,在用了一段时间以后发现session开始丢失,我使用druid监控发现,每次会话都会换一个jsessionid 。
在研究了很久后发现代码时没有问题的,设置session失效时间也没用,原因可能出在chrome上面,
我猜测,可能是chrome一直不关闭,每次使用以后添加新的缓存,然后chrome的缓存满了,所以,session存不进去,于是重启chorme,问题解决。

猜你喜欢

转载自blog.csdn.net/qq_27275851/article/details/88920293