iOS Safari で Web ページを実行すると問題が発生します。
canvas-text ライブラリを使用して、次の場合に完全に機能するテキストをレンダリングしています。
- Ubuntu/Windows -- クローム、ファイアフォックス
- Mac -- サファリ
- Android -- デフォルト、Firefox、Opera、Dolphin
ただし、 iPhoneでは動作しません。
iPhone で JavaScript コンソールを有効にすると、次のようなエラーがいくつか表示されます。
Javascript: エラー未定義
TypeError:「未定義」はオブジェクトではありません
コンソールには行番号は表示されませんが、コード全体に警告ボックスを配置することで、問題が発生した場所を特定することができました。エラーを生成するコードは次のとおりです。
usedX = context.measureText(textUsername).width + context.measureText(textInput).width + paddingInput*2 + borderInput*2;
問題は context.measureText 内に存在します。以前のコードを次のコードに置き換えようとしたため、これを知っています。
var usedX = context.measureText("why is this an error?");
その行でまだエラーが発生しました。
私がやったので、contextとmeasureTextが定義されていることは確かです:
alert(context.measureText);
警告した:
function measureText(){[ネイティブ コード]}
私が言ったように、問題は measureText にあるようです。私は多くのことをグーグルで検索しましたが、解決策を見つけることができませんでした。
私は JavaScript 初心者なので、簡単な修正があってもそれほど驚くことはありません。しかし、コードはすべて問題ないように見えます。これは、iPhone の measureText の実装に問題があります。