【问题标题】:Detect iPad (or iOS) for only a single href change检测 iPad(或 iOS)仅针对单个 href 更改
【发布时间】:2012-02-29 09:07:34
【问题描述】:

我搜索了很多帖子,发现了很多将 iOS 设备重定向到不同页面的脚本。但我不想改变整个页面,只是一个链接。

整个网站 (www.example.com) 适用于 iOS 设备,并包含一个指向基于 Flash 的应用程序页面的链接(在不同的主机 - app.example.com 上)。这个特定的应用程序有一个 iOS 版本,可以在 iPad 上使用。单击链接时,我只想将计算机用户发送到 Flash 应用程序页面,并将 iPad 用户发送到告诉他们有关 iOS 应用程序的页面(在 www.上)。

我的设想是这样的:

如果用户在 iPad 上,则在头部使用 iOS 检测脚本将“isiPad”变量设置为“true”。然后在体内的功能如下:

如果'isiPad'=true,那么

<a href="http://www.example.com/useiOSapp.html"> Run the App </a>

否则

<a href="http://app.example.com/flash-app-page.html">Run the App</a>

【问题讨论】:

    标签: javascript html ios href detect


    【解决方案1】:

    您可以通过 htaccess 运行它并重写 URL。

    RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
    RewriteRule ^http://example.com/flash-app-page.html$ http://example.com/useiOSapp.html [R=301]
    

    或者,您可以将其声明为 js var:

    var isiPad = navigator.userAgent.match(/iPad/i) != null;
    

    然后在准备就绪时调用一个重写 url 的函数... jquery 版本:

    $(document).ready(function(){
        if(isiPad)
        {
            $('#link_id').attr('href', 'http://example.com/useiOSapp.html');
        }
    });
    

    (假设您还为链接提供了“link_id”的 ID)

    【讨论】:

    • 我忽略了所有的 htaccess 帖子,因为我认为 htaccess 只适用于“整页”更改。我不知道它可以用于单一的事情。谢谢你教我一些新东西!
    • 我想我可能没有提供足够的信息并遗漏了一个重要的项目。我刚开始尝试使用 htaccess 方法,但无法使其工作。我喜欢这个选项,因为它适用于目录中的所有页面。出于测试目的,我注释掉了 RewriteCond。如果我将一个本地页面重写为另一个,则重写工作。但在这里我可能没有提供足够的信息。 Flash 应用程序位于不同的主机上。我已经更新了原始帖子以显示差异。是否可以重写外部地址?再次感谢您的帮助!
    • 好吧,我会用我自己的工作来回应。我添加了一个附加页面,它只是一个指向外部 Flash 应用程序的重定向页面。然后我将我的普通用户指向该本地重定向页面,并使用 htaccess 将 iPad 用户重写到 useIOSapp.html 页面。
    【解决方案2】:

    HTML

    <a id="myLink" href="">Run App</a>
    

    Javascript

    $(document).ready(function($){
        var deviceAgent = navigator.userAgent.toLowerCase();
        var agentID = deviceAgent.match(/(iphone|ipod|ipad)/);
        if (agentID) {
            $('#myLink').attr('href', 'http://example.com/useiOSapp.html');
        }else
         { 
             $('#myLink').attr('href', 'http://example.com/flash-app-page.html');
         }
    });
    

    【讨论】:

    • 谢谢!这对我来说很有意义,并且与我的想法一致。我真的很感谢确切的代码!
    • 如果这回答了您的问题,您应该选择它作为将来遇到此问题的人的答案。很高兴它帮助了你。
    猜你喜欢
    • 1970-01-01
    • 2011-06-30
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2012-01-06
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多