Chromeデベロッパーコンソールで次のようなエラーが表示されます。
Uncaught TypeError: Cannot read property 'msie' of undefined
.browser
は現在jQueryで非推奨になっているためですが、私は最新バージョンのjQueryツールを使用していますが、それでもエラーが発生しているので、js
name__ファイルをチェックインしてあります。
エラーにならないようにするにはどうすればよいでしょうか。
JQuery 1.9以降、$.browser
メソッドは削除されました。
jQuery.browser()
メソッドはjQuery 1.3以降廃止され、1.9では削除されました。 必要に応じて、jQuery Migrateプラグインの一部として利用できます。Modernizrなどのライブラリで機能検出を使用することをお勧めします。
『アップグレードガイド』に記載されているように、 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 Toolsのバグです 。あなたはパッチの一つを試すことができます。
edit - jQuery Toolsが多くの支持を得ているようには思えません。自分でサポートを引き継ぐ準備ができていない限り、私は個人的にそのライブラリに依存する新しいプロジェクトを始めることはありません。
あなたの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>
ソース リンク
私は単に追加しました
jQuery.browser = {
msie: false,
version: 0
};
jqueryスクリプトの後。IEはもう気にしないので。
JQuery 1.10とJQuery UI 1.8を使用しているときにこのエラーが発生しました。最新のJQuery UI 1.11.4にアップデートすることで、このエラーを解決することができました。
古いMS IEバージョンをまったくサポートするつもりはないので、browser.msie
へのすべての参照をfalse
に置き換えました。いい解決策ではない、私は知っているが、それは私のために働く。
(実際には、それらは!browser.msie
として表示されていましたが、条件から省略することができます。)
一撃のように使う
このコマンドを使って解く
"TypeErrorが見つかりません:未定義のプロパティ 'msie'を読み取れません"エラー
if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
return;
}
一撃のように使う
$(function (a) {
。 。 。 。あなたの関数では、次のようにmsieプロパティを使うことができます。
if (a.browser.msie)
{
}
else
{
$(settings.current).after(Uploadelement);
}
がんばろう
JQueryを2回定義している場合は、このエラーが発生する可能性があります。たとえば、Primefaces(すでにjQueryが含まれています)を使用していて、それを別の場所で定義しているとします。