Uncaught TypeError: не удается прочитать свойство "msie" неопределенных инструментов-jQuery

Я получаю следующую ошибку в консоли Chrome dev:

Uncaught TypeError: Cannot read property 'msie' of undefined

Я понимаю, что это потому что .browser теперь устарел в jQuery, однако я использую последнюю версию инструментов jQuery, и он все еще дает ошибку, я проверил в js файл, и он есть.

как я могу обойти это, чтобы он не дал ошибку?

10 ответов


на $.browser метод был удален с jQuery 1.9.

jQuery.browser() removed

на jQuery.browser() метод устарел с jQuery 1.3 и удаляется в 1.9. при необходимости он доступен как часть плагина jQuery Migrate. мы рекомендуем использовать функцию обнаружения с библиотекой, такой как Modernizr.

- руководство по обновлению jQuery Core 1.9.

как заявил в руководстве по обновлению вы можете попробовать использовать в jQuery перенести плагин чтобы восстановить эту функциональность и позволить инструментам jQuery работать.


вы можете проверить это решение AJ. Это довольно просто, Просто скопируйте и вставьте следующие строки кода.

jQuery.browser = {};
(function () {
    jQuery.browser.msie = false;
    jQuery.browser.version = 0;
    if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
        jQuery.browser.msie = true;
        jQuery.browser.version = RegExp.;
    }
})();

ссылка:


используйте следующий тег скрипта в файле jsp/js:

<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>

это будет работать точно.


Я использую ниже код после включения файла js, и он работает сейчас.

<script src="js/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    jQuery.browser = {};
    (function () {
        jQuery.browser.msie = false;
        jQuery.browser.version = 0;
        if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
            jQuery.browser.msie = true;
            jQuery.browser.version = RegExp.;
        }
    })();
</script>

вот ошибка инструментов jQuery на GitHub. Вы можете попробовать один из патчей.

редактировать - мне не кажется, что инструменты jQuery получают большую поддержку. Я лично не стал бы начинать новый проект с зависимостью от этой библиотеки, если бы не был готов взять на себя поддержку.


замените JS на

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

источник ссылке


поскольку я не планирую поддерживать старые версии MS IE вообще, я просто заменил все ссылки на browser.msie с false. Не очень хорошее решение, я знаю, но оно работает на меня.

(на самом деле, они появились как !browser.msie, которые могут быть опущены из условий.)


использовать как удар

$(function (a) {

. . . . .тогда в вашей функции вы можете использовать свойство msie как

if (a.browser.msie) 
{
}
else 
{
   $(settings.current).after(Uploadelement);
}

goodluck


использовать как удар

Я использую эту команду и решить

"Uncaught TypeError: не удается прочитать свойство "msie" неопределенного " Error

if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
    return;
}

Я получал эту ошибку при использовании jQuery 1.10 и jQuery UI 1.8. Я смог устранить эту ошибку, обновив до последней версии jQuery UI 1.11.4.

шаги по обновлению пользовательского интерфейса JQuery из Visual Studio:

  • перейдите к проекту или решению
  • щелкните правой кнопкой мыши: "Управление пакетами NuGet"
  • слева нажмите на вкладку "Установленные пакеты"
  • найдите "jQuery UI (Объединенная библиотека)" и нажмите Update
  • если нашли, Выберите его и нажмите Update
  • если не найдено, найдите его в "Online > nuget.org" вкладка слева и нажмите кнопку Установить. Если старая версия jQuery UI version все еще существует, ее можно удалить из проекта