1

canvas-todataurl-type に対するModernizr のテストには、次のコメントがあります。

// This test is asynchronous. Watch out.

では、このテストをいつ安全に使用できるかを知るためのベスト プラクティスは何ですか。画像にロードされていることがわかりますが、ライブラリはいつテストするかについてのコールバックを提供しているようには見えません。

4

1 に答える 1

1

@jedierikb - あなたがこれで私たちを助けてくれたので、あなたは答えを知っていると思います! でも、他人のために…

Modernizr 2.x では、多少の手作業が必要です。非同期検出はundefined完了するまで行われるため、...:

<script src="path/to/modernizr.js"></script>
<script>
  (function withDataURL () {
    if (typeof Modernizr.todataurljpeg !== 'undefined') {
      // Do things with `Modernizr.todataurljpeg`
    }
    else {
      setTimeout(withDataURL, 100);
    }
  }());
</script>

あるいは、https ://gist.github.com/eligrey/384583 などのウォッチ ライブラリ/shim/プラグインを使用します。

Modernizr 3.0 では、2 つの関連する変更を行っています。

  • キャンバスtodataurl検出はすべて同期です (@jedierikb に感謝)
  • 他の同期検出は、おそらくコールバックを使用して、ファーストクラスのサポートを提供します (これについてはまだ詳細を検討中です)。
于 2013-03-15T16:23:14.907 に答える