4

Opera Miniはキャンバステキストを表示しませんが、一般的なテストでは、テキストAPI関数が実装されていることが示されています。サポートを確認するための代替手法はありますか?

現在の方法:

var context = document.createElement("canvas").getContext("2d");
var canvasTextSupport = typeof context.fillText == "function"; // true in Opera Mini

テキストが表示されているかどうかを確認するために使用できる例:tutorialspoint

4

4 に答える 4

2

@kangaxが提案しているように、キャンバスにテキストを描画してから、ピクセルが描画されていることを確認することでテストできます。

var canvasTextSupported = function() {
  var canvas = document.createElement("canvas");  
  var context = canvas.getContext("2d");

  context.fillText("X", 5, 5);     
  var imageData = context.getImageData(0, 0, 10, 10);

  for(var i = 0, l = imageData.data.length; i < l; i++) {
    if(imageData.data[i] !== 0)
      return true;
  }
  return false;
}
于 2012-09-26T16:39:58.480 に答える
2

Modernizrライブラリのカスタムビルドを使用してそれを行うことができます!

http://modernizr.com/

于 2012-09-20T10:47:15.280 に答える
1

私がcanvasフォントを検出するために使用していたので、エラーがスローされたので、私が見つけたよりコンパクトな代替手段は次のとおりです。

var canvasTextSupported = function() {
  var cvs = document.createElement("canvas");  
  var ctx = cvs.getContext("2d");
  return 'measureText' in ctx && ctx.measureText("") !== undefined;
}

Firefox3.0.xにはがありませんmeasureText。そしてOperaMiniではmeasureText()はを返しますundefined

于 2015-06-03T06:23:47.347 に答える
0

canisuse.jsスクリプトを使用して、ブラウザがキャンバステキストAPIをサポートしているかどうかを検出できます

caniuse.canvasTextApi();
于 2016-06-16T06:31:42.210 に答える