读书人

关于浏览器兼容性解决方案

发布时间: 2013-04-02 12:35:26 作者: rapoo

关于浏览器兼容性
dojo和jquery同时在IE内核用发生了冲突,
控制台没有任何错误信息,而且js插件也都加载进来了。
每次我断点调试的时候,提示进程被占用。不解!!
而在谷歌内核中完美运行。不知道有什么好的解决办法,求指教!




[解决办法]
我以前同时用dwr和jquery也出现过这种情况,也是IE出不来效果,其他浏览器都可以。
网上查了下,说是 $ 符号被占用导致解析不了。要重写jquery或dwr的库重新定义一个符号。
但是jqeury的兼容性很强,一般不会出现什么兼容性问题。
后来在jsp页面把dwr和jquery的库导入顺序改了。结果就可以了

[解决办法]

引用:
/*
* 导入dojo组件
*
* */
//dojo.require("navigationGrid");
dojo.require("dijit.Tree");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojo.parser");
dojo.require('dijit.Dialog');
……


你的dojo 版本?
[解决办法]
引用:
<script type="text/javascript" djConfig="parseOnload: true,isDebug: false"
src="js/dojo/doj……
……


看了一下这段代码:
Line 70: warning: 'settle' is undefined.
dojo.addOnLoad(settle);

Line 85: warning: 'initUserList' is undefined.
dojo.addOnLoad(initUserList);

检查一下,这两个变量是否运行时前面定义了。(我想你大概是应该是在别处定义了,只是没有贴在这里)。


引用:
只有在IE内核上面出不来。很蛋疼的问题

引用:
dojo 1.8


关于 dojo.addOnLoad 我经历过一个 IE 专有的 bug. 但不是 dojo 1.8, 是更老的版本。
解决方法如下,供你参考:

把你的所有对 dojo.addOnLoad 的引用,加一个 wrapper 去 catch the exception

//假设你原有代码:
dojo.addOnLoad(foo);

//改为
dojo.addOnLoad(function(){
try {
foo();
} catch(e) {
}
});

读书人网 >JavaScript

热点推荐