zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

IE10以下では、`符号不能留白`

$("#test").click(function () {
    $('html,body').animate({ 'scrollTop': '0' }, 500)
})

このコード行は jQuery の書き方を使用しており、500 ミリ秒のアニメーションがあります。このように Chrome ブラウザなどで問題なく実行できます。

しかし、今日プロジェクトを書いている際に、コードを IE10 に対応させる必要があったため、IE ブラウザで実行することになりました。すると、このコード行がエラーを報告することがわかりました。これはなぜでしょうか?

簡単に分析すると、これは setTimeout のような JavaScript の書き方に似ています。setTimeout では、2 つのパラメータがあり、それぞれが指定された時間とタイマー時間を表します。

そして、animate はアニメーションのプロパティであり、この時間は 500 ミリ秒かかって完了します。しかし、これは重要ではありません。なぜエラーが発生するのでしょうか?

この時、私は 500 の後ろにある,に注目しました。突然、1 つの可能性が浮かびました。,を削除してみましょう。案の定、コンソールにエラーが表示されなくなりました。

おそらく、これは IE の仕組みによるもので、ブラウザは,を認識すると、自動的に後に文が続くと想定します。しかし、空白のままにしておくと、ブラウザの期待とは異なる結果が生じ、エラーが発生します。おそらく IE のエンジンは要求が厳格なのでしょう。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。