Uncaught TypeError: Não é possível ler a propriedade ‘msie’ de undefined – jQuery tools

Estou recebendo o seguinte erro no console do Chrome:

Uncaught TypeError: Cannot read property 'msie' of undefined 

Meu entendimento é que é porque .browser agora está obsoleto no jQuery, no entanto, estou usando a versão mais recente das ferramentas jQuery e ainda está dando o erro, eu verifiquei no arquivo js e ele está lá.

Como posso contornar isso para que não dê o erro?

O método $.browser foi removido a partir do jQuery 1.9.

jQuery.browser() removed

O método jQuery.browser() foi preterido desde o jQuery 1.3 e é removido em 1.9. Se necessário, está disponível como parte do plugin jQuery Migrate. Recomendamos usar a detecção de resources em uma biblioteca como a Modernizr.

– Guia de atualização do jQuery Core 1.9 .

Conforme declarado no Guia de atualização, você pode tentar usar o plugin jQuery Migrate para restaurar essa funcionalidade e permitir que as ferramentas do jQuery funcionem.

Você pode verificar essa solução por AJ. É bastante simples, basta copiar e colar as seguintes linhas de código.

 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.$1; } })(); 

Referência :

  • $ .browser no jQuery 1.9.x para detecção legada do IE

Use a seguinte tag de script no seu arquivo jsp / js:

   

isso funcionará com certeza.

Eu uso abaixo do código após include o arquivo js e está funcionando agora.

   

Aqui está o bug do jQuery Tools no GitHub . Você pode tentar um dos patches.

editar – não me parece que o jQuery Tools está recebendo muito suporte. Eu pessoalmente não começaria um novo projeto com dependência dessa biblioteca, a menos que eu estivesse preparado para assumir o meu apoio.

Substitua seu JS por

   

Link de origem

Como eu não pretendo suportar versões antigas do MS IE, eu simplesmente substituí todas as referências a browser.msie por false . Não é uma boa solução, eu sei, mas funciona para mim.

(Na verdade, eles apareceram como !browser.msie , que poderiam ser omitidos das condições.)

Use como golpe

 $(function (a) { 

. . . . Então, em sua function, você pode usar a propriedade msie como

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

boa sorte

Use como golpe

Eu uso este comando e resolvo

“Erro Incorreto TypeError: Não é possível ler a propriedade ‘msie’ de undefined”

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

Eu estava recebendo esse erro ao usar o JQuery 1.10 e JQuery UI 1.8. Consegui resolver esse erro atualizando para a última IU do JQuery 1.11.4.

Etapas para atualizar a interface do usuário do JQuery do Visual Studio:

  • Navegue para o projeto ou solução
  • Clique com o botão direito: “Gerenciar pacotes NuGet”
  • À esquerda, clique na guia “Pacotes instalados”
  • Procure por “JQuery UI (biblioteca combinada)” e clique em Atualizar
  • Se encontrado, selecione-o e clique em Atualizar
  • Se não for encontrado, encontre-o na aba “Online> nuget.org” à esquerda e clique em instalar. Se a versão antiga da versão da IU do Jquery ainda existir, ela poderá ser excluída do projeto