2

これは奇妙なIEの癖です。手順は次のとおりです。

  1. InternetExplorer8でmsn.comにアクセスします
  2. 開発ツールをプルアップ
  3. ブラウザモードを「IE8CompatView」に切り替えます
  4. ドキュメントモードを「IE7標準」に切り替えます
  5. [スクリプト]タブに切り替えます
  6. 次のスクリプトを実行します。true.toJSON()

を返しますtrue。他のブラウザはこれを行いません。trueある時点でブール値のをに渡すため、jQueryUIのツールチップウィジェットがIEで失敗するため、問題が発生し$.isEmptyObject()ます。通常、渡すとtrue戻るだけですtruetrue、メソッドが関連付けられているため(toJSON)、ウィジェットを返しfalseたり壊したりします。

同じテストを試してtrue.toJSON()何も返さずに壊れてしまうサイト(Googleなど)があることに気づきました。この奇妙なtoJSON方法とは何ですか?どうすればそれを取り除くことができますか?

4

2 に答える 2

2

ドキュメントから:_jQuery.isEmptyObject()

他のタイプのオブジェクト(DOM要素、プリミティブ文字列/数値、ホストオブジェクト)ではブラウザ間で一貫した結果が得られない可能性があるため、引数は常にプレーンなJavaScriptオブジェクトである必要があります。

つまり、ツールチップウィジェットを修正します。

于 2013-02-22T02:33:35.370 に答える
0

toJSONオブジェクトで定義されている場合、そのオブジェクトでの動作方法を指定するメソッドですJSON.stringify詳細については、 MDNを確認してください。

于 2013-02-22T02:23:03.433 に答える