DWR util.js не работает в Internet Explorer

Я использую DWR в течение нескольких месяцев в моем проекте. я пытался использовать dwr util.js в одном из моих jsp, но странно, когда я включаю util.js(версия 2.0.1), ни один другой javascript не работает в Internet Explorer (работает нормально в Mozilla).

я пытаюсь манипулировать таблицами с помощью util.js, как описано здесь, и что еще более удивительно, я даже не вижу, как ссылка работает хорошо в Internet Explorer.

кто-нибудь сталкивался с этим. любая помощь?

Спасибо!

1 ответ

Решение

Вы случайно не используете jQuery, Prototype или другой язык JavaScript, который использует функцию $?

2.x версии DWR Alias dwr.util.byId как "$"(что устарело, так как оно не так сильно / полезно, как $ в jQuery, прототип или аналогичный).

Они пытались быть умными, и только Псевдоним, если $ не был предопределен, но логика проверки неверна.

Я предполагаю, что сначала они сделали это:

if(!$){
  //... alias it
}

но потом кто-то понял, что если $ не был определен, это выдаст ошибку, поэтому он был зафиксирован как:

var $;
if(!$){
  //... alias it
}

который отлично работает в Firefox, так как это не объявляет значение для $Просто оно существует.

Но в Internet Explorer оператор var переопределяет $ как (ничего)... таким образом, он не существует, когда выполняется тест if()...

Проверяя код 3.x (RC), они отказались от этого теста для более стабильной работы:

if(window['$'] == null){
  //... alias it
}

Что прекрасно работает в Firefox И Internet Explorer (и AFAIK во всех других браузерах)... просто обновите util.js файл в вашем dwr.jar,

Я также должен отметить: порядок, в котором вы включаете библиотеки, определит, какая из них станет владельцем $ функция.

например, чтобы позволить jQuery это сделать, выполните:

<script src="jQuery"...></script>
<script src="dwr/util.js"...></script>

чтобы он был у DWR, обязательно установите флаг noConflict для jQuery

<script src="jQuery"...></script>
<script>jQuery.noConflict();</script>
<script src="dwr/util.js"...></script>

Документы: jQuery.noConflict

Другие вопросы по тегам