IE6/IE7尿性笔记 && avalon && director

表单提交 [ie6]
form默认特性(input回车以及点击type=submit的按钮会自动触发form submit),在ie6中,不能使button[submit],必须是input[submit]
在avalon中,ie6-8均不能支持到在submit触发函数中阻止页面跳转的工作,先弃用以上特性了。

css属性选择器 [ie6]
不支持

JSON [ie6-n]
- 不支持parse和stringify,需要引入json2.js or json3
- 最好所有的key都加上引号,像这样属于关键字的key,{'var': 0},高版本浏览器会自动识别为key,ie6不行。
- 最后一个value后面不能有多余的逗号

document.domain  [ie6]
修改domain后会造成跨域,后续发往本地服务的ajax请求会被拒绝访问。如果在1.a.com下的页面中执行了document.domain=a.com,之后再ajax拉取本地server数据或者访问location.hash或者documen.domain之类的,会被认为跨域而拒绝访问。

 director [ie6-8]

 https://github.com/flatiron/director
- 没有权限或者拒绝访问
问题:设置document.domain之后,director路由管理的路由跳转中,用到的loaction.hash以及frame.contentWindow会被拒绝访问
解决:做了两个工作,一个是把全局loc变量替换为document.location,另一个是注释掉了writeFrame方法,暂时没发现这个方法有什么用处

- 路由跳转浏览器崩溃 [ie6-7]
问题:有些路由跳转,可能是因为内存占用太高,(跟avalon可能有关系),导致浏览器崩溃退出
解决:万能的settimeout解决

其他参考:
https://juejin.im/post/59a3f2fe6fb9a0249471cbb4

 avalon

1. 双向数据绑定必须在vm中声明才行

<h2>{{rr}}</h2>
<input type="" name="" :duplex="@rr">

如上,是不好使的,还需要在avalon.define({rr:0})中这样声明一下。(ng1不必如此)

2. 低版本IE问题
http://www.cnblogs.com/rubylouvre/p/4012709.html

3. avalon2最佳实践
https://segmentfault.com/a/1190000006933252

表单验证-Promise [ie6-n]
IE系列不支持Promise,可以引用pollfill来支持,目前主流有两个bluebird和ES6-Promise,链接分别如下:
http://bluebirdjs.com/docs/install.html
https://github.com/stefanpenner/es6-promise

原文地址:https://www.cnblogs.com/youryida/p/7339507.html