3

jquery プラグインの quicksand を使用しようとしていますが、jquery 1.9.1 でこのエラーが発生します。

「キャッチされていない TypeError: 未定義のプロパティ 'msie' を読み取ることができません」

msie が jQuery.browser プロパティのフラグであることはわかっています。jQuery.browser はバージョン 1.3 から廃止され、jQuery 1.9.0 で削除されました。

これがエラーの原因です。しかし、流砂が再び機能するようにするための修正はありますか?

どんな助けやアドバイスも素晴らしいでしょう!

前もって感謝します!

4

2 に答える 2

5

勇敢な開発者への注意事項

jQuery.browserとに関する(いくつかの)義務的な言葉jQuery.support

jQuery.browsernavigator.userAgentから読み取ったユーザーエージェントのフラグが含まれています。このプロパティは使用しないことをお勧めします。代わりに機能検出を使用してみてください (「 」を参照jQuery.support)。jQuery.browserjQuery の将来のリリースでプラグインに移動される可能性があります。

を使用$.browserして現在のユーザー エージェントを検出し、実行中のブラウザーに基づいてページの表示を変更するのではなく、機能検出を使用することをお勧めします。このプロセスを簡単にするために、jQuery はそのような多くのテストを実行し、jQuery.supportオブジェクトのプロパティを設定します。

教訓: プロジェクトを更新し、 への依存を取り除きjQuery.browser、必要に応じて機能検出を使用します。非推奨または削除されたメソッドまたはプロパティにプロジェクトが過度に依存している領域をテストして見つけるには、 を参照してくださいjQuery-migrate

jQUEry 機能検出の代替手段については、 Modernizr.jsYepNope.jsも参照してください。


を置き換える jQuery shim ファイル$.browser(fancyBox-rails プロジェクトの厚意による):

// jQuery 1.9 has removed the `$.browser` property, fancybox relies on
// it, so we patch it here if it's missing.
// This has been copied from jQuery migrate 1.1.1.
if ( !jQuery.browser ) {
  var uaMatch = function( ua ) {
    ua = ua.toLowerCase();

    var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
      /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
      /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
      /(msie) ([\w.]+)/.exec( ua ) ||
      ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
      [];

    return {
      browser: match[ 1 ] || "",
      version: match[ 2 ] || "0"
    };
  };

  matched = uaMatch( navigator.userAgent );
  browser = {};

  if ( matched.browser ) {
    browser[ matched.browser ] = true;
    browser.version = matched.version;
  }

  // Chrome is Webkit, but Webkit is also Safari.
  if ( browser.chrome ) {
    browser.webkit = true;
  } else if ( browser.webkit ) {
    browser.safari = true;
  }

  jQuery.browser = browser;
}

https://github.com/hecticjeff/fancybox-rails/blob/master/vendor/assets/javascripts/jquery.browser.js

于 2013-03-21T06:36:50.770 に答える
0

versionから削除されたquicksandプラグインを使用しています。code (i.e $.browser)jQuery1.9

于 2013-03-21T06:29:46.153 に答える