U.CI.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. //#region 客户端信息
  2. Namespace.register("U.CI");
  3. U.CI.UA = navigator.userAgent.toLowerCase(); //浏览器信息
  4. /*
  5. * 获取去新浪获取地址信息
  6. *
  7. * @param {function} 获取客户端信息回调
  8. */
  9. U.CI.GetUserLocation = function (cb) {
  10. if (US.NLInfo["country"]) { //获取客户端信息
  11. cb(); //回调函数
  12. }
  13. else { //异步加载
  14. U.MD.DynamicLoad("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js", "js", [[U.CI.AsyGCUInfo, [cb]]]);
  15. }
  16. }
  17. /*
  18. * 获取客户端ip异步
  19. *
  20. * @param {function} 成功回调
  21. */
  22. U.CI.AsyGCUInfo = function (cb) {
  23. /*
  24. remote_ip_info
  25. 参数描述
  26. -------country 国家
  27. -------province 省
  28. -------city 城市
  29. -------district 区
  30. */
  31. try {
  32. var i, _UDE = remote_ip_info, //新浪返回的值
  33. _UCE = ["country", "province", "city", "district", "isp", "type"];
  34. _UDE["LogAddr"] = "";
  35. for (i = 0; i < _UCE.length; i++) {
  36. _UDE["LogAddr"] += ((_UDE["LogAddr"] && _UDE[_UCE[i]]) ? "," : "") + _UDE[_UCE[i]];
  37. }
  38. U.Ut.AddObj(US.NLInfo, _UDE); //添加内容
  39. cb(_UDE); //回调使用
  40. }
  41. catch (e) { return; }
  42. }
  43. /*
  44. * 获取浏览器类型
  45. *
  46. * @return {object} 浏览器类型
  47. ---------browser 浏览器类型 如 ie chrome firefox safir
  48. ---------ver 浏览器版本 如果ie的 7.0 8.0 和chrome 33 34
  49. */
  50. U.CI.getBrowser = function () {
  51. var _UDE = browser.ver;
  52. return { "browser": _UDE[1], "ver": _UDE[2] }; //browser
  53. }
  54. /*
  55. * 获取用户电脑系统
  56. *
  57. * @return {string} 成功回调
  58. */
  59. U.CI.getSystem = function () {
  60. var i, _UDOS = navigator.platform,
  61. _USE = { //非window 系列
  62. "Apple series": "Mac68K,MacPPC,Macintosh",
  63. "Unix series": "X11"
  64. },
  65. _UDE = { "Windows NT 5.1": "WinXP", //windows 系列
  66. "Windows NT 6.1": "Win7",
  67. "Windows NT 6.0": "Windows Server 2008",
  68. "Windows NT 6.2": "Win8",
  69. "Windows NT 5.2": "Windows Server 2003",
  70. "Windows NT 5.0": "Win2000",
  71. "Win 9x 4.90": "WinME"
  72. };
  73. //window系类 判断
  74. for (i in _UDE) {
  75. if (_UDE.hasOwnProperty(i) && U.CI.UA.indexOf(i.toLowerCase()) > -1) {
  76. return _UDE[i].toLowerCase();
  77. }
  78. }
  79. //苹果或者Unix系类 判断
  80. for (i in _USE) {
  81. if (_USE.hasOwnProperty(i) && _USE[j].indexOf(_UDOS) > -1) {
  82. return i;
  83. }
  84. }
  85. }
  86. /*
  87. * 判断用户支持html5 还是flash
  88. *
  89. * @return {string} 判断是否支持flash或者html5
  90. -----------HTML5 支持html5
  91. -----------Flash 支持flash
  92. */
  93. U.CI.IsHF = function () {
  94. if (typeof (Worker) !== "undefined") { return "HTML5"; }
  95. else if (navigator.plugins["Shockwave Flash"]) { return "Flash"; }
  96. else { return false; }
  97. }
  98. /*
  99. * 获取浏览器信息
  100. *
  101. * @return {boolean} 是否支持flash
  102. */
  103. U.CI.Browser = function () {
  104. var i,
  105. _UAE = U.CI.UA,
  106. _USE = {},
  107. _UVE = U.MS.browser, //区分浏览器
  108. _UDE = U.MS.browsers, //个版本浏览器正则
  109. _UCE = ["360ee", "360se", "se", "lbbrowser", "aoyou", "theworld", "worldchrome", "greenbrowser", "qqbrowser", "baidu", "MicroMessenger", "QQ", "AppleWebKit"]; //知名公司浏览器区分
  110. //判断浏览器版本
  111. for (i in _UDE) {
  112. if (_UDE.hasOwnProperty(i)) {
  113. _USE[i] = _UDE[i].test(_UAE);
  114. }
  115. }
  116. //各个公司的版本
  117. for (i = 0; i < _UCE.length; i++) {
  118. if (_UAE.indexOf(_UCE[i]) > 0) {
  119. _USE[_UCE[i]] = true;
  120. break;
  121. }
  122. };
  123. _USE.ver = _UAE.match(_UVE); //设置版本
  124. return _USE; //获取内核和产商
  125. };
  126. //#endregion