我在项目中使用DWR几个月。我尝试在我的一个jsp中使用dwr的util.js,但奇怪的是当我包含util.js(版本2.0.1)时,没有其他javascript在Internet Explorer中工作(在mozilla中正常工作)。
我正在尝试使用所述here描述的util.js操作表格,更令人惊讶的是,我甚至看不到链接在Internet Explorer中运行良好。
有没有人遇到这个。有什么帮助吗?
谢谢!
答案 0 :(得分:3)
您是否还使用jQuery,Prototype或其他使用$函数的JavaScript语言?
DWR Alias dwr.util.byId
的2.x版本为“$
”(不推荐使用,因为它不如jQuery,Prototype中的$
强大/有用相似)。
他们试图变得聪明,只做了别名,如果$
没有预先定义,但检查逻辑是有缺陷的。
我首先假设他们这样做了:
if(!$){
//... alias it
}
然后有人意识到如果没有定义$
,这会引发错误,所以它被提交为:
var $;
if(!$){
//... alias it
}
在Firefox中运行正常,因为它没有声明$
的值,只是它存在。
但在Internet Explorer中,var语句将$
重新定义为(nothing)...因此在运行if()测试时它不存在...
检查3.x(RC)代码,他们放弃了这个测试以获得更稳定的代码:
if(window['$'] == null){
//... alias it
}
在Firefox和Internet Explorer(& AFAIK所有其他浏览器)中工作正常...只需更新util.js
中的dwr.jar
文件。
我还应该注意:您包含库的顺序将决定哪一个获得$
函数的所有权。
e.g。让jQuery拥有它,做:
<script src="jQuery"...></script>
<script src="dwr/util.js"...></script>
让DWR拥有它,请务必为jQuery设置noConflict标志
<script src="jQuery"...></script>
<script>jQuery.noConflict();</script>
<script src="dwr/util.js"...></script>