128 lines
4.4 KiB
JavaScript
128 lines
4.4 KiB
JavaScript
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Silverlight.supportedUserAgent.js version 2.0.30822.0
|
||
|
//
|
||
|
// This file is provided by Microsoft as a helper file for websites that
|
||
|
// incorporate Silverlight Objects. This file is provided under the Microsoft
|
||
|
// Public License available at
|
||
|
// http://code.msdn.microsoft.com/SLsupportedUA/Project/License.aspx.
|
||
|
// You may not use or distribute this file or the code in this file except as
|
||
|
// expressly permitted under that license.
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
if (!window.Silverlight)
|
||
|
{
|
||
|
window.Silverlight = { };
|
||
|
}
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// supportedUserAgent:
|
||
|
//
|
||
|
// NOTE: This function is strongly tied to current implementations of web
|
||
|
// browsers. The implementation of this function will change over time to
|
||
|
// account for new Web browser developments. Visit
|
||
|
// http://code.msdn.microsoft.com/SLsupportedUA often to ensure that you have
|
||
|
// the latest version.
|
||
|
//
|
||
|
// Determines if the client browser is supported by Silverlight.
|
||
|
//
|
||
|
// params:
|
||
|
// version [string]
|
||
|
// determines if a particular version of Silverlight supports
|
||
|
// this browser. Acceptable values are "1.0" and "2.0"
|
||
|
// userAgent [string]
|
||
|
// optional. User Agent string to be analized. If null then the
|
||
|
// current browsers user agent string will be used.
|
||
|
//
|
||
|
// return value: boolean
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
Silverlight.supportedUserAgent = function(version, userAgent)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var ua = null;
|
||
|
|
||
|
if ( userAgent)
|
||
|
{
|
||
|
ua = userAgent;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
ua = window.navigator.userAgent;
|
||
|
}
|
||
|
|
||
|
var slua = {OS:'Unsupported',Browser:'Unsupported'};
|
||
|
|
||
|
//Silverlight does not support pre-Windows NT platforms
|
||
|
if (ua.indexOf('Windows NT') >= 0 || ua.indexOf('Mozilla/4.0 (compatible; MSIE 6.0)')>=0) {
|
||
|
slua.OS = 'Windows';
|
||
|
}
|
||
|
else if (ua.indexOf('PPC Mac OS X') >= 0) {
|
||
|
slua.OS = 'MacPPC';
|
||
|
}
|
||
|
else if (ua.indexOf('Intel Mac OS X') >= 0) {
|
||
|
slua.OS = 'MacIntel';
|
||
|
}
|
||
|
|
||
|
if ( slua.OS != 'Unsupported' )
|
||
|
{
|
||
|
if (ua.indexOf('MSIE') >= 0) {
|
||
|
if (navigator.userAgent.indexOf('Win64') == -1)
|
||
|
{
|
||
|
if (parseInt(ua.split('MSIE')[1]) >= 6) {
|
||
|
slua.Browser = 'MSIE';
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else if (ua.indexOf('Firefox') >= 0) {
|
||
|
var versionArr = ua.split('Firefox/')[1].split('.');
|
||
|
var major = parseInt(versionArr[0]);
|
||
|
if (major >= 2) {
|
||
|
slua.Browser = 'Firefox';
|
||
|
}
|
||
|
else {
|
||
|
var minor = parseInt(versionArr[1]);
|
||
|
if ((major == 1) && (minor >= 5)) {
|
||
|
slua.Browser = 'Firefox';
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
else if (ua.indexOf('Safari') >= 0) {
|
||
|
slua.Browser = 'Safari';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//detect all unsupported platform combinations (IE on Mac, Safari on Win)
|
||
|
var supUA = (!( slua.OS == 'Unsupported' || //Unsupported OS
|
||
|
slua.Browser == 'Unsupported' || //Unsupported Browser
|
||
|
(slua.OS == 'Windows' && slua.Browser == 'Safari') || //Safari is not supported on Windows
|
||
|
(slua.OS.indexOf('Mac') >= 0 && slua.Browser == 'MSIE') //IE is not supported on Mac
|
||
|
));
|
||
|
|
||
|
if (version=='2.0')
|
||
|
{
|
||
|
//add PPC to unsupported list
|
||
|
return (supUA && (slua.OS != 'MacPPC' ));
|
||
|
}
|
||
|
else if (version == '1.0')
|
||
|
{
|
||
|
//add win2k to unsupported list
|
||
|
return (supUA && ( ua.indexOf('Windows NT 5.0') < 0));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return (supUA);
|
||
|
}
|
||
|
}
|
||
|
catch (e)
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
}
|