网站介绍

这个网站提供一个名为 uaredirect 的 JavaScript 函数,用于根据用户的设备和浏览器类型,重定向到相应的页面。同时,还提供了一个辅助函数 isSubdomain,用于判断一个域名是否是另一个域名的子域名。

功能

  1. 根据用户设备和浏览器类型,自动选择合适的页面进行重定向。
  2. 支持将当前页面的哈希值(#m)添加到重定向链接中。
  3. 支持自定义子域名,以便更好地满足特定场景的需求。

示例

uaredirect("https://www.example.com", "subdomain"); // 如果当前站点是 example.com,且用户访问的是 subdomain 或 example.com 下的任何子域,则重定向到 https://www.example.com/#m/<当前页面URL>  

实现原理

  1. 首先检查页面中是否存在 id 为 “bdmark” 的元素,如果存在则不进行重定向,直接返回。
  2. 使用 window.location.host 获取当前站点的主域名,window.location.href 获取当前页面的完整 URL。
  3. 调用 isSubdomain 函数判断目标域名是否为当前主域名的子域名,如果是,则将目标 URL 设置为当前站点的主域名加上 “/#m/” 和当前页面的 URL。
  4. 如果不是子域名,则将目标 URL 设置为当前页面的 URL。
  5. 对于 iPhone、iPod、Android 等移动设备以及 iOS 系统,使用 location.replace 方法进行重定向。
  6. 如果在执行过程中发生异常,捕获并处理。