internet-explorer - DWR util.js 在 Internet Explorer 中无法工作

标签 internet-explorer dwr

我已经在我的项目中使用 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>

文档:jQuery.noConflict

关于internet-explorer - DWR util.js 在 Internet Explorer 中无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915924/

相关文章:

javascript - IE 8.0 中从 XMLHttpRequest() 获取ElementbyId

javascript - 如果使用 IE 浏览,禁用 Javascript 文件

java - 如何在基于 DWR 的验证后退出 Javascript 处理

java - DWR + Spring - 多个ajax过滤器不起作用

javascript - 在html元素上设置断点?

internet-explorer - 在 IE 打开时以编程方式清除 IE 历史记录、cookie、缓存

JavaScript removeAttribute 在 IE 中不适用于 href 和 onclick 值

css - 设置Highcharts饼图的不透明度

java - 使用 ext-js 的服务器端技术

Javascript:等到ajax请求完成关闭页面