DWR util.js не работает в Internet Explorer
-
20-09-2019 - |
Вопрос
Я использую DWR в своем проекте уже пару месяцев.я пытался использовать dwr util.js в одном из моих jsp, но, как ни странно, когда я включаю util.js (версия 2.0.1) ни один другой javascript не работает в Internet Explorer (отлично работает в mozilla).
я пытаюсь манипулировать таблицами с помощью util.js как описано здесь и что еще более удивительно, я даже не вижу, чтобы ссылка хорошо функционировала в Internet Explorer.
кто-нибудь сталкивался с этим?какая-нибудь помощь?
Спасибо!
Решение
Случайно, вы также не используете jQuery, Prototype или другой язык JavaScript, который использует функцию $?
2.x версии псевдонима DWR 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.Нет конфликта