簡単に言えば:
しばらくの間、JQuery/JQueryUI ベースのシステムに関してエラーがログに記録されていました。核となるのは、かなり基本的なクリック リンク -> JQuery AJAX GET -> Open JQueryUI モーダル パターンです。
私たちが得たエラーは単純に見えました - 「オブジェクトはプロパティまたはメソッド 'ダイアログ' をサポートしていません」 - JQueryUI にエラーがあると思わせました。ブラウザーの非互換性、JQuery 側の不適切なコード、私たちの側の不適切なコード、怒っているコードの神様などを排除するために多くの時間を費やした後、私たちは幸運な休憩を取りました。オフィスのマシンの 1 つで 100% 再現。
アドウェア、具体的には [の古いバージョンの] easyinline - http://www.easyinline.comで埋め尽くされていたことが判明しました。ユーザーがリンクをクリックすると、Google の CDN から JQuery をリロードするなど、JavaScript ファイルのカスケードが読み込まれます。
ほとんどのリンクでは、これは実際には問題ではありません。いずれにせよページから移動し、すべてがリロードされます。しかし、私たちのモーダルでは、リクエストが送信された時点ですべてのモーダル リンクが JQuery にスタンプされることを意味し、その結果、JQueryUI やその他のプラグインが欠落している「新しい」$ を利用しようとするレスポンスが発生しました。
最初は、「私たちの」JQuery 用に別のグローバル var ($$ など) を作成し、それを $ だけでなくコードで明示的に使用することを考えました。これに関する問題は、$ に依存する他のいくつかのサードパーティ ツールを使用していたことと、アドウェアをロードした $ が別の (古い) バージョンであることです。したがって、$ を正しく保存することが重要です。
何か案は?私は JQuery の noConflict() メソッドを知っていますが、ざっと見ただけでは、それが法案に合っているとは思えません。