做页面遇到的一些坑

来源:互联网 发布:模拟动物的游戏知乎 编辑:程序博客网 时间:2024/05/29 17:34

1.做那个坑爹的看板的时候,被投诉说有乱格现象,真是吃力不讨好,一把辛酸泪,如果压力不那么大,也不失是一个学习的好机会

发现有些童鞋还在用ie 8的浏览器,感觉也可以在自己的代码上加一点注释,不然兼容性问题又出现坑我一脸


简单描述一下问题,就是在ie9的版本,用到的jquery的tmpl插件动态生产的table,出现了跳格的现象,而且查看多出来的空格,没有对应的 <td>标签与之对应

在网上找了一下,发现时ie9版本的问题,解决的方法是,把<tr>和<td>的空格去掉,因为ie9里面会把占位符解析成一个空元素,在ie下调试的时候就可以看到

这里转一个别人的经验,如果是在后台拼字符串的方法,就可以在后台直接去掉占位符,如果像我这样的前端tmpl绑定的,还是把模版改一下吧


在家没法vpn公司的电脑,转一个别人的图片和帖子http://blog.csdn.net/anmo/article/details/38232767,感谢感谢



改好之后,发现我的ie居然是edge版本,本地调试不了,下载了一个IETester模拟了一下


以后可以加一段注释如下,以免又被无知坑一把

<!--[if lt IE 8]>            <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>        <![endif]-->


2.js深拷贝的问题

试了一个全局变量,保存后台返回的数据,用来为前端的筛选做个准备,发现在筛选函数中,把全局变量赋值给局部变量的时候,应该是浅拷贝

因为筛选一次过后,全局变量的值也跟随着改变了,联想到时浅拷贝的问题

参考了一下知乎上面的答案

http://www.zhihu.com/question/23031215  感谢某知乎大神给出的答案~

var cloneObj = function(obj){    var str, newobj = obj.constructor === Array ? [] : {};    if(typeof obj !== 'object'){        return;    } else if(window.JSON){        str = JSON.stringify(obj), //系列化对象        newobj = JSON.parse(str); //还原    } else {        for(var i in obj){            newobj[i] = typeof obj[i] === 'object' ?             cloneObj(obj[i]) : obj[i];         }    }    return newobj;};


3.js里没有remove方法

js里有一个替代的函数splice

arr.splice(index,howmany,element1,... ...,elementN);

index---------从该下标开始删除

howmany----删除指定数量的元素
elements-----插入的元素  没有的话就空着
可以实现删除、插入、替换

当然也可以自己封装成一个remove方法,根据index去删除

Array.prototype.remove = function (dx) {      if (isNaN(dx) || dx > this.length) {          return false;      }      for (var i = 0, n = 0; i < this.length; i++) {          if (this[i] != this[dx]) {              this[n++] = this[i];          }      }      this.length -= 1;  }; 


4.遇到一个诡异的页面,在点击搜索之后,页面会重新刷新一次,玛塔库


最后检查到时因为button的type转变为了submit,默认提交表单,所以在执行搜索事件之后,会执行submit







0 0
原创粉丝点击