我在Chrome开发控制台得到以下错误:

Uncaught TypeError: Cannot read property 'msie' of undefined

我的理解是,这是因为.browser现在在jQuery中已弃用,但我使用的是最新版本的jQuery工具,它仍然会给出错误,我检查了js文件,它就在那里。

我怎样才能避免这个错误呢?


当前回答

如果你定义了两次jQuery,那么你就会得到这个错误。例如,如果你正在使用Primefaces(它已经包含了jQuery),而你在其他地方定义了它。

其他回答

像吹一样吹

$(function (a) {

. . . . .然后在你的函数中,你可以使用msie属性像

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

古德勒克

你可以看看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.$1;
    }
})();

参考:

美元。jQuery 1.9浏览器。x表示遗留IE检测

因为我不打算支持旧的IE版本,我只是替换了所有对浏览器的引用。我爱虚伪。 我知道这不是个好办法,但对我来说很管用。

(实际上,它们以!browser的形式出现。Msie,可以从条件中省略。)

我使用下面的代码后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.$1;
        }
    })();
</script>

我在使用JQuery 1.10和JQuery UI 1.8时得到这个错误。我能够通过更新到最新的JQuery UI 1.11.4来解决这个错误。

从Visual Studio更新JQuery UI的步骤:

导航到项目或解决方案 右键单击:“管理NuGet包” 在左侧,单击“Installed Packages”选项卡 找到“JQuery UI (Combined library)”,然后单击Update 如果找到,选择它并单击Update 如果没有找到,请在左侧的“Online > nuget.org”选项卡中找到它,然后单击安装。如果旧版本的Jquery UI版本仍然存在,可以将其从项目中删除