[javascript] 잡히지 않은 TypeError : 정의되지 않은 ‘msie’속성을 읽을 수 없습니다-jQuery 도구

Chrome 개발자 콘솔에서 다음 오류가 발생합니다.

Uncaught TypeError: Cannot read property 'msie' of undefined

내 이해는 그것이 .browserjQuery에서 더 이상 사용되지 않기 때문에 최신 버전의 jQuery 도구를 사용하고 있으며 여전히 오류를 발생 js시키는 것입니다. 파일을 확인하면 거기에 있습니다.

오류가 발생하지 않도록 어떻게 해결할 수 있습니까?



답변

$.browser방법은 jQuery 1.9부터 제거되었습니다.

jQuery.browser() removed

jQuery.browser()메소드는 jQuery 1.3부터 ​​더 이상 사용되지 않으며 1.9에서 제거되었습니다. 필요한 경우 jQuery Migrate 플러그인의 일부로 사용할 수 있습니다. Modernizr과 같은 라이브러리에서 기능 감지를 사용하는 것이 좋습니다.

jQuery Core 1.9 업그레이드 안내서 .

업그레이드 안내서에 명시된 바와 같이 jQuery Migrate 플러그인 을 사용 하여이 기능을 복원하고 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.$1;
    }
})();

참고 :


답변

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


답변

다음은 GitHub의 jQuery 도구 버그입니다 . 패치 중 하나를 시도 할 수 있습니다.

편집 -jQuery Tools가 많은 지원을 받고있는 것처럼 보이지 않습니다. 본인이 직접 지원을받을 준비가되지 않은 한 개인적으로 해당 라이브러리에 종속 된 새 프로젝트를 시작하지 않을 것입니다.


답변

나는 단순히 추가했다

jQuery.browser = {
    msie: false,
    version: 0
};

더 이상 IE에 신경 쓰지 않기 때문에 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>

소스 링크