1
0

browser.html 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>页面兼容性提示</title>
  7. <style>
  8. /* 基础重置与布局 */
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. body {
  15. font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  16. background-color: #fff;
  17. display: flex;
  18. flex-direction: column;
  19. justify-content: center;
  20. align-items: center;
  21. min-height: 100vh;
  22. color: #999;
  23. }
  24. /* 容器与文本样式 */
  25. .container {
  26. text-align: center;
  27. padding-bottom: 100px;
  28. }
  29. .tipsImg {
  30. width: 240px;
  31. height: 240px;
  32. margin-bottom: 20px;
  33. }
  34. .tips {
  35. padding: 10px 0;
  36. line-height: 1.6;
  37. }
  38. /* 浏览器图标区域布局 */
  39. .browser-icons {
  40. display: flex;
  41. justify-content: center;
  42. gap: 40px;
  43. margin-top: 20px;
  44. flex-wrap: wrap;
  45. /* 适配小屏幕换行 */
  46. }
  47. .browser-item {
  48. display: flex;
  49. flex-direction: column;
  50. align-items: center;
  51. cursor: pointer;
  52. transition: transform 0.2s ease;
  53. width: 130px;
  54. }
  55. .browser-item:hover {
  56. transform: scale(1.05);
  57. }
  58. .browser-item img {
  59. width: 80px;
  60. height: 80px;
  61. margin-bottom: 18px;
  62. }
  63. .browser-item span {
  64. font-size: 14px;
  65. }
  66. /* 国产系统专属提示(可选样式) */
  67. .domestic-os-tip {
  68. color: #ff6600;
  69. font-weight: bold;
  70. margin-top: 20px;
  71. }
  72. .icon-area {
  73. display: flex;
  74. justify-content: center;
  75. gap: 40px;
  76. margin-top: 20px;
  77. }
  78. /* 单个图标及文字的样式 */
  79. .browser-icon {
  80. display: flex;
  81. flex-direction: column;
  82. align-items: center;
  83. cursor: pointer;
  84. }
  85. .browser-icon img {
  86. width: 80px;
  87. height: 80px;
  88. margin-bottom: 18px;
  89. }
  90. .browser-icon span {
  91. font-size: 14px;
  92. }
  93. /* 顶部提示文字样式 */
  94. .tips {
  95. }
  96. .downImg{
  97. width: 16px !important;
  98. height: 16px !important;
  99. margin-bottom: 0 !important;
  100. margin-right: 10px;
  101. }
  102. .browser-bottom{
  103. display: flex;
  104. justify-content: center;
  105. align-items: center;
  106. }
  107. </style>
  108. </head>
  109. <body>
  110. <div class="container">
  111. <!-- 通用提示文案 -->
  112. <img class="tipsImg" src="./images/pic_update.png" alt="">
  113. <p class="tips" style="margin-top: 0;">无法打开页面,请升级或更换浏览器后重新打开</p>
  114. <p class="tips">建议使用以下浏览器</p>
  115. <!-- 浏览器图标区 -->
  116. <div class="browser-icons" id="Domestic">
  117. </div>
  118. </div>
  119. <script>
  120. // 识别国产操作系统逻辑(示例覆盖常见标识,可根据需要补充)
  121. function isDomesticOS() {
  122. const userAgent = navigator.userAgent.toLowerCase();
  123. const platform = navigator.platform.toLowerCase();
  124. console.log(userAgent, platform, '浏览器标识')
  125. // 统信 UOS、银河麒麟、深度 Deepin、中标麒麟等标识
  126. return /uos|kylin|deepin|neokylin/.test(userAgent)
  127. || /linux/.test(platform) || /国产|中国/.test(userAgent);
  128. }
  129. // 非国产浏览器
  130. const browsers = [
  131. {
  132. name: 'Firefox',
  133. icon: 'fa-firefox',
  134. color: 'bg-orange-500',
  135. src: './images/browser_Firefox.png',
  136. downloadUrl: './images/browser_Firefox.png'
  137. },
  138. {
  139. name: 'Microsoft Edge',
  140. icon: 'fa-edge',
  141. color: 'bg-blue-500',
  142. src: './images/browser_Edge.png',
  143. downloadUrl: './images/browser_Edge.png'
  144. },
  145. {
  146. name: 'Chrome',
  147. icon: 'fa-chrome',
  148. color: 'bg-red-500',
  149. src: './images/browser_Chrome.png',
  150. downloadUrl: './images/browser_Chrome.png'
  151. }
  152. ];
  153. // 国产浏览器
  154. const browsersList = [
  155. {
  156. name: 'Chromiun',
  157. icon: 'fa-firefox',
  158. color: 'bg-orange-500',
  159. src: './images/browser_Chromium.png',
  160. downloadUrl: './images/browser_Chromium.png'
  161. },
  162. {
  163. name: '奇安信可信浏览器',
  164. icon: 'fa-edge',
  165. color: 'bg-blue-500',
  166. src: './images/browser_Qianxin.png',
  167. downloadUrl: './images/browser_Qianxin.png'
  168. },
  169. {
  170. name: '360安全浏览器',
  171. icon: 'fa-chrome',
  172. color: 'bg-red-500',
  173. src: './images/browser_360.png',
  174. downloadUrl: './images/browser_360.png'
  175. },
  176. {
  177. name: '火狐',
  178. icon: 'fa-chrome',
  179. color: 'bg-red-500',
  180. src: './images/browser_Firefox.png',
  181. downloadUrl: './images/browser_Firefox.png'
  182. }
  183. ];
  184. // 获取容器元素
  185. const container = document.getElementById('Domestic');
  186. const isDomestic = isDomesticOS();
  187. let list = !isDomestic ? browsers : browsersList;
  188. console.log('isDomestic',isDomestic, 'list', list);
  189. // 动态遍历数组生成DOM元素
  190. list.forEach(browser => {
  191. // 创建浏览器卡片容器
  192. const browserCard = document.createElement('div');
  193. browserCard.className = 'browser-item';
  194. // 创建链接元素
  195. const link = document.createElement('a');
  196. // link.href = browser.downloadUrl;
  197. // link.target = '_blank';
  198. link.href = '#';
  199. link.rel = 'noopener noreferrer';
  200. link.className = 'flex flex-col items-center';
  201. link.style = 'color: #909090';
  202. // 创建图标容器
  203. const iconContainer = document.createElement('div');
  204. iconContainer.className = `browser-icon ${browser.color} mb-3 text-white`;
  205. // 创建图标元素
  206. const icon = document.createElement('img');
  207. icon.className = `fa ${browser.icon} text-2xl`;
  208. icon.src = browser.src;
  209. // 创建名称元素
  210. const name = document.createElement('span');
  211. name.className = 'text-sm text-gray-600 group-hover:text-primary transition-colors';
  212. name.textContent = browser.name;
  213. // 创建下载图标
  214. // const downloadIcon = document.createElement('img');
  215. // downloadIcon.src = './images/down.png';
  216. // downloadIcon.className = 'downImg';
  217. // const textDiv = document.createElement('div');
  218. // textDiv.className = `browser-bottom`;
  219. // textDiv.appendChild(downloadIcon);
  220. // textDiv.appendChild(name);
  221. // 组装元素
  222. iconContainer.appendChild(icon);
  223. iconContainer.appendChild(name);
  224. link.appendChild(iconContainer);
  225. // link.appendChild(downloadIcon);
  226. // link.appendChild(textDiv);
  227. browserCard.appendChild(link);
  228. container.appendChild(browserCard);
  229. });
  230. // 执行检测
  231. // const domestic = document.getElementById('domestic');
  232. // const noDomestic = document.getElementById('noDomestic');
  233. // if (isDomestic) {
  234. // domestic.style.display = 'flex';
  235. // noDomestic.style.display = 'none';
  236. // } else {
  237. // // 非国产系统可隐藏或自定义提示
  238. // domestic.style.display = 'none';
  239. // noDomestic.style.display = 'flex';
  240. // }
  241. </script>
  242. </body>
  243. </html>