サイトに絵文字を追加したいのですが、プラットフォームでサポートされていない場合は、小さな四角を表示するのではなく、絵文字を非表示にします。
これは不可能だと思いますが、反対する人はいますか?これはどのように行うことができますか?
C
国旗の絵文字は、ここに投稿された回答に対するちょっとしたエッジケースです。旗の絵文字がデバイスでサポートされていない場合は、代わりに国コードのフォールバックがレンダリングされます。例えば。ユニオンジャックフラグ(????????)は-> GBになります。
Windows10は絵文字フラグをサポートしていません。
このスクリプトは、既存の回答と同様の方法を使用しますが、代わりに、キャンバスがグレースケールであるかどうかを確認します。キャンバスに色がある場合は、絵文字がレンダリングされたことがわかります。
function supportsFlagEmoji () {
var canvas = document.createElement("canvas");
canvas.height = 10;
canvas.width = canvas.height*2;
var ctx = canvas.getContext("2d");
ctx.font = canvas.height+"px Arial";
ctx.fillText("????????", 0, canvas.height);
var data = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
var i = 0;
while(i<data.length) {
if (data[i] !== data[i+1] || data[i] !== data[i+2]) return true;
i+=4;
}
return false;
}
誰かがライブラリを探している場合は、ここにあります if-emoji
。それはロコが彼の答えで使用したのと同じアプローチを使用します。