在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
发现当页面加载没有结束,迅速点击 菜单的时候.会报一个IE特有的错误.呵呵. Google 一下的,这个错误非常多. 也有人用asp.net menu的时候碰到类似的错误.比如: http://forums.asp.net/thread/1158791.aspx http://forums.asp.net/thread/1159962.aspx 类似的程序用firefox 浏览却没有问题. IE这个问题其实是一个很常见的错误,它一般会在document还没有加载结束, 有脚本动态的修改document状态的时候发生. 对于asp.net menu 我看了一下它自动生成的代码. asp.net 会动态的生成几个axd文件,其实就是js文件. 其中有类似的代码.
}
呵呵,果然有一个动态的appendchild的代码. 其实这个做法很不严谨, MS 写的代码, 有时候也会忽略一些问题. 万一document 还没有加载, appendchild 触发了怎么办? 呵呵,当我点的很快的时候, 正好是这个并发的场合. 类似线程同步一样. 这也是为什么IE会报错的员应. firefox对document的状态修改并发控制可能跟ie不一样. 接下来怎么修改呢? 1. 可以用把menu放到一个div中,首先设置visibility为hidden. 2. 等document 加载完之后,再设置visibility为visible.
document.onreadystatechange=ShowMenu;
function ShowMenu() } 这样就可以搞定了. 如果可以修改script的话,给script加上一个Defer属性也可以解决. |
请发表评论