关于浏览器兼容性
dojo和jquery同时在IE内核用发生了冲突,
控制台没有任何错误信息,而且js插件也都加载进来了。
每次我断点调试的时候,提示进程被占用。不解!!
而在谷歌内核中完美运行。不知道有什么好的解决办法,求指教!
浏览器
dojo
ie
google
jquery
------解决方案--------------------一个站点,只使用一个 js 库
------解决方案--------------------估计不是dojo 与 jquery冲突,有可能jquery的$函数被别的其它函数覆盖了。
根据这个办法检查一下:
http://bbs.csdn.net/topics/390388107#post-393876366
看看是不是这个原因。
------解决方案--------------------我赶脚是你在别的页面设了断点,跑到那里了,你就没管了。。
------解决方案--------------------把所有功都干掉,再一个个加回来,看看那个加了之后不正常
或者直接把你觉得没问题的干掉只留下可能有问题的功能,然后再调试!
------解决方案--------------------不要先去怀疑别人,先确定自己有没有错
可能问题就在你眼皮底下,发现之后,你自己都有干掉自己的冲动
------解决方案--------------------我以前同时用dwr和jquery也出现过这种情况,也是IE出不来效果,其他浏览器都可以。
网上查了下,说是 $ 符号被占用导致解析不了。要重写jquery或dwr的库重新定义一个符号。
但是jqeury的兼容性很强,一般不会出现什么兼容性问题。
后来在jsp页面把dwr和jquery的库导入顺序改了。结果就可以了
------解决方案--------------------
你的dojo 版本?
------解决方案--------------------
看了一下这段代码:
Line 70: warning: 'settle' is undefined.
dojo.addOnLoad(settle);
Line 85: warning: 'initUserList' is undefined.
dojo.addOnLoad(initUserList);
检查一下,这两个变量是否运行时前面定义了。(我想你大概是应该是在别处定义了,只是没有贴在这里)。
关于 dojo.addOnLoad 我经历过一个 IE 专有的 bug. 但不是 dojo 1.8, 是更老的版本。
解决方法如下,供你参考:
把你的所有对 dojo.addOnLoad 的引用,加一个 wrapper 去 catch the exception
//假设你原有代码:
dojo.addOnLoad(foo);
//改为
dojo.addOnLoad(function(){
try {
foo();
} catch(e) {
}
});