我已经在我的项目中使用 DWR 几个月了。我尝试在我的一个jsp中使用dwr的util.js,但奇怪的是,当我包含util.js(版本2.0.1)时,没有其他javascript在Internet Explorer中工作(在mozilla中工作正常)。
我正在尝试使用 util.js 操作表,如所述 here更令人惊讶的是,我什至看不到该链接在 Internet Explorer 中运行良好。
有人遇到过这种情况吗?有什么帮助吗?
谢谢!
最佳答案
您是否也使用 jQuery、Prototype 或其他使用 $ 函数的 JavaScript 语言?
2.x 版本的 DWR Alias dwr.util.byId
为“$
”(已弃用,因为它不如$
(jQuery、Prototype 或类似版本)。
他们试图变得聪明,并且仅在未预先定义 $
的情况下才使用别名,但检查逻辑存在缺陷。
我猜想一开始他们是这样做的:
if(!$){
//... alias it
}
但后来有人意识到,如果未定义 $
,则会引发错误,因此将其提交为:
var $;
if(!$){
//... alias it
}
它在 Firefox 中运行良好,因为它没有声明 $
的值,只是声明它存在。
但是在 Internet Explorer 中,var 语句将 $
重新定义为(无)...因此在运行 if() 测试时它不存在...
检查 3.x (RC) 代码,他们放弃了此测试以获得更稳定的结果:
if(window['$'] == null){
//... alias it
}
这在 Firefox 和 Internet Explorer(以及据我所知所有其他浏览器)中运行良好...只需更新 dwr.jar
中的 util.js
文件即可。
我还应该注意:包含库的顺序将决定哪个库获得 $
函数的所有权。
例如要让 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>
关于internet-explorer - DWR util.js 在 Internet Explorer 中无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915924/