機能をテストする必要があることに同意しますが、「「最新のブラウザ」ではサポートされているが「古いブラウザ」ではサポートされていない機能」に対する簡単な答えを見つけるのは困難です。
それで、私はたくさんのブラウザを起動し、Modernizerを直接調べました。絶対に必要な機能をいくつか追加してから、「inputtypes.color」を追加しました。これは、IE11ではなくChrome、Firefox、Opera、Edgeなどの主要なブラウザすべてをカバーしているように見えるためです。これで、Chrome / Opera / Firefox / Edgeを使用したほうがよいと優しく提案できます。
これは私が使用するものです-あなたはあなたの特定のケースのためにテストするために物事のリストを編集することができます。いずれかの機能が欠落している場合はfalseを返します。
public CheckBrowser(): boolean
{
let tests = ["csstransforms3d", "canvas", "flexbox", "webgl", "inputtypes.color"];
for (let i = 0; i < tests.length; i++)
{
if (!ObjectUtils.GetProperty(Modernizr, tests[i]))
{
console.error("Browser Capability missing: " + tests[i]);
return false;
}
}
return true;
}
そして、これが「inputtypes.color」に必要なGetPropertyメソッドです。
public static GetProperty(target: any, propertyName: string): any
{
if (!(target && propertyName))
{
return undefined;
}
var o = target;
propertyName = propertyName.replace(/\[(\w+)\]/g, ".$1");
propertyName = propertyName.replace(/^\./, "");
var a = propertyName.split(".");
while (a.length)
{
var n = a.shift();
if (n in o)
{
o = o[n];
if (o == null)
{
return undefined;
}
}
else
{
return undefined;
}
}
return o;
}