凌峰创科服务平台

自动跳转手机网站代码怎么写?

核心原理

自动跳转的核心逻辑是:检测用户当前使用的设备类型(是手机还是电脑),如果是手机,则执行页面跳转。

自动跳转手机网站代码怎么写?-图1
(图片来源网络,侵删)

设备检测通常通过以下两种方式实现:

  1. 检测浏览器 User-Agent (用户代理):这是最传统、最常见的方法,User-Agent 是一个字符串,浏览器和操作系统会通过它向服务器声明自己的身份,iPhone 的 User-Agent 里通常包含 "iPhone" 或 "Mobile" 字样。
  2. 检测屏幕宽度:这是一种更现代的方法,通过检测浏览器窗口的宽度来判断是否为移动设备,如果宽度小于某个阈值(如768px),就认为是手机。

下面我们介绍几种具体的实现方法。


使用 JavaScript 检测 User-Agent (最常用)

这是最灵活的方法,可以在不刷新页面的情况下完成跳转,并且可以轻松地集成到现有的任何网站中。

代码示例

将以下代码放在您网站的 <head> 标签内。

自动跳转手机网站代码怎么写?-图2
(图片来源网络,侵删)
<script>
    function checkAndRedirect() {
        // 获取浏览器的 User-Agent
        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
        // 定义常见的移动设备关键词
        // 注意:这个列表不是绝对的,可以根据需要扩展
        var isMobile = /android|iphone|ipod|ipad|blackberry|opera mini|iemobile|windows phone/i.test(userAgent);
        if (isMobile) {
            // 如果是移动设备,跳转到手机网站
            // 请将 'https://m.yourdomain.com' 替换为您的手机网站地址
            window.location.href = "https://m.yourdomain.com";
        }
    }
    // 页面加载完成后立即执行检测
    checkAndRedirect();
</script>

代码解析

  1. function checkAndRedirect(): 定义一个函数来执行检测和跳转逻辑。
  2. navigator.userAgent: 获取当前浏览器的 User-Agent 字符串。navigator.vendorwindow.opera 是为了兼容一些特殊浏览器(如旧版 Opera)。
  3. /.../i.test(userAgent):
    • 这是一个正则表达式匹配。
    • android|iphone|ipod|ipad|...:匹配这些关键词中的任意一个。
    • i:表示不区分大小写(能匹配 "iPhone" 也能匹配 "iphone")。
    • .test() 方法如果字符串中包含匹配项,则返回 true,否则返回 false
  4. if (isMobile): 如果检测结果是移动设备,就执行跳转。
  5. window.location.href = "...": 将当前页面的 URL 更改为手机网站的地址,从而实现跳转。
  6. checkAndRedirect(): 调用函数,使其在页面加载时执行。

使用响应式设计 (推荐的最佳实践)

对于现代网站,强烈推荐使用响应式设计,而不是自动跳转,响应式设计可以根据用户的屏幕尺寸,动态地调整网站的布局和内容,让同一套网站在手机和电脑上都有良好的体验。

为什么推荐响应式设计?

  • URL 统一:用户无论用什么设备访问,都是同一个网址,这有利于 SEO(搜索引擎优化),也方便用户分享和收藏。
  • 体验流畅:不需要跳转,页面内容无缝切换。
  • 维护简单:只需要维护一套代码,而不是两套独立的网站。

如何实现响应式设计?

主要依靠 CSS3 Media Queries (媒体查询)

示例代码:

自动跳转手机网站代码怎么写?-图3
(图片来源网络,侵删)

在您的 CSS 文件中添加以下代码:

/* 默认样式:针对电脑等大屏幕设备 */
body {
    font-size: 16px;
    background-color: #f0f0f0;
}
.container {
    width: 1200px;
    margin: 0 auto;
    padding: 20px;
}
/* 当屏幕宽度小于等于 768px 时,应用以下样式(针对平板和手机) */
@media (max-width: 768px) {
    body {
        font-size: 14px; /* 字体变小 */
        background-color: #e0e0e0;
    }
    .container {
        width: 100%; /* 容器宽度占满屏幕 */
        padding: 10px;
        box-sizing: border-box; /* 让 padding 不会增加总宽度 */
    }
    /* 可以在这里隐藏电脑端才有的元素,或调整布局 */
    .desktop-only {
        display: none;
    }
}
/* 当屏幕宽度小于等于 480px 时,应用以下样式(针对小屏手机) */
@media (max-width: 480px) {
    body {
        font-size: 12px;
    }
    .container {
        padding: 5px;
    }
}

如何结合使用? 您可以将 方法一的 JavaScript方法二的 CSS 结合起来,当检测到移动设备时,可以加载一个移动端专用的 CSS 文件,或者隐藏/显示某些元素,而不是直接跳转。

<head>
    <!-- 默认加载电脑版样式 -->
    <link rel="stylesheet" href="style.css">
    <!-- 检测设备并加载移动端样式 -->
    <script>
        function checkAndLoadMobileCSS() {
            var userAgent = navigator.userAgent || navigator.vendor || window.opera;
            var isMobile = /android|iphone|ipod|ipad|blackberry|opera mini|iemobile|windows phone/i.test(userAgent);
            if (isMobile) {
                // 创建一个 link 元素来加载移动端样式
                var link = document.createElement('link');
                link.rel = 'stylesheet';
                link.href = 'mobile-style.css'; // 你的移动端样式文件
                document.head.appendChild(link);
            }
        }
        checkAndLoadMobileCSS();
    </script>
</head>

使用服务器端跳转 (PHP 示例)

这种方法在服务器端完成检测,然后返回相应的页面,优点是搜索引擎爬虫可以正确识别手机版网站,但需要服务器端支持。

PHP 代码示例 (index.php)

<?php
// 获取 User-Agent
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// 定义移动设备关键词
$mobileKeywords = array('android', 'iphone', 'ipod', 'ipad', 'blackberry', 'opera mini', 'iemobile', 'windows phone');
// 检查 User-Agent 是否包含任何移动设备关键词
foreach ($mobileKeywords as $keyword) {
    if (stripos($userAgent, $keyword) !== false) {
        // 如果是移动设备,跳转到手机网站
        header('Location: https://m.yourdomain.com');
        exit; // 确保在跳转后停止脚本执行
    }
}
// 如果不是移动设备,继续加载电脑版网站内容
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">电脑版网站</title>
</head>
<body>
    <h1>欢迎访问电脑版网站</h1>
    <p>您正在使用电脑或平板设备。</p>
</body>
</html>

代码解析

  1. $_SERVER['HTTP_USER_AGENT']: 在 PHP 中获取客户端的 User-Agent 信息。
  2. stripos($haystack, $needle): 查找字符串中是否包含另一个字符串(不区分大小写)。
  3. header('Location: ...'): 发送一个 HTTP 重定向头,告诉浏览器跳转到新地址。
  4. exit;: 在发送重定向头后,立即终止脚本的执行,非常重要。

总结与对比

方法 优点 缺点 适用场景
JavaScript 跳转 实现简单,易于集成。
不需要服务器支持。
可以灵活控制跳转时机。
对 SEO 不友好(搜索引擎可能无法正确索引手机版)。
可能被浏览器插件或用户设置禁用。
快速为现有网站添加移动跳转,或用于特定场景(如内部系统)。
响应式设计 SEO 友好,URL 统一。
用户体验最佳,无跳转延迟。
维护成本低,一套代码适配所有设备。
需要从零开始设计或重构网站。
对于极其复杂的网站,CSS 可能会变得很庞大。
所有现代网站的首选方案。
服务器端跳转 对 SEO 最友好,搜索引擎能正确识别手机版。
可靠性高,不受浏览器设置影响。
需要服务器端支持(如 PHP, .NET, Node.js)。
维护两套代码,相对复杂。
对 SEO 要求极高的商业网站,或需要为搜索引擎提供专门移动页面的场景。

最终建议:

  • 新项目:请务必选择 响应式设计
  • 旧项目改造:如果不想重构,可以使用 JavaScript 跳转 作为临时解决方案。
  • 追求极致 SEO:如果网站对搜索引擎排名要求非常高,可以考虑 服务器端跳转,并结合响应式设计。
分享:
扫描分享到社交APP
上一篇
下一篇