检测iPad(或iOS)仅进行一次href更改

时间:2012-02-07 22:06:05

标签: javascript html ios href detect

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

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

我想象的是:

如果用户在iPad上,请在头部使用iOS检测脚本将'isiPad'变量设置为'true'。然后在身体的东西,如:

如果'isiPad'=真,那么

<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>

2 个答案:

答案 0 :(得分: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');
     }
});

答案 1 :(得分: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)