useragent 文字列で見つかったキーワードを含むキーと値のペアの配列があります。これらのペアをループして、一致する各値を navigator.userAgent 文字列に一致させる必要があります。ブラウザのスニッフィングが嫌われていることは知っていますが、それは私次第ではありません。Ext.each (私はあまり詳しくありません) の代わりに、for ループを使用できます。これは、私が初めてこの問題を解決する方法についての jsfiddle です http://jsfiddle.net/tagZN/83/が、代わりに別の方法でこれを行うように言われました。
<script type="text/javascript">
var deviceProfiles =
[
'{match:Macintosh, name:Mac Desktop}',
'{match:Windows NT, name:Windows Desktop}',
'{match:Ubuntu, name:Ubuntu,layout:desktop}',
'{match:Silk, name:Kindle Fire,layout:tablet}'
];
var ua = navigator.userAgent;
var re = new RegExp(deviceProfiles.join("|"), "i");
var identifyDevice = function( ua )
{
Ext.each(
deviceProfiles,
function( profile )
{
return ua.match( profile.match ) == nil;
}
);
}
</script>
また、もともと deviceProfile は次のように与えられました (そして、一致と名前の値を入力するように指示されました):
var deviceProfiles =
[
{
match: 'user agent regular expression here',
name: 'name of device here',
},
{
match: 'user agent regular expression here',
name: 'name of device here'
},
{
match: 'user agent regular expression here',
name: 'name of device here',
}
];
うまくいかなかったので、上記のように変更しました。これは悪い電話でしたか。与えられたものを解読しようとしています。私も作成しました
var re = new RegExp(deviceProfiles.join("|"), "i");
まだ使用されていませんが、必要になると思います。ua を、配列 deviceProfiles にキーワードが含まれている場所にコピーして貼り付けた実際のユーザー エージェント文字列に等しく設定することで、これをテストしましたが、まだ運がありません。
どんな助けでも本当に感謝しています。