如何仅更改移动浏览器的链接?

时间:2014-03-17 13:51:55

标签: javascript jquery html

我很难找到办法做到这一点。我被告知我可以使用JavaScript或jQuery。 这就是我所拥有的。

脚本:

<script type="text/javascript">
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) 
{
 document.getElementById('mylink').href = "http://google.com/";
}
</script>

链接:

<a href="#" id="mylink">

我甚至尝试过:

<a href="#" id="#mylink">

我想要将链接转到任何其他浏览器上的网站,但如果您在iPhone上转到iTunes链接。如果有人可以帮我解决这个问题,我将非常感激。

6 个答案:

答案 0 :(得分:1)

像这样检测移动设备:

 var isMobile = navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/);

if(isMobile) {

   document.getElementById('mylink').href = "http://google.com/";

}

答案 1 :(得分:1)

建议不要使用浏览器检测,最好通过css媒体查询使用大小检测。 Bootstrap可能会帮助你:

http://getbootstrap.com/css/#responsive-utilities

仅限可见的手机:.visible-xs 隐藏类仅限手机:.hidden-xs

使用网址了解详情。

<!--Only Phones-->
<a href="#" class="visible-xs" id="#mylink">

<!--Anything else-->
<a href="#" class="hidden-xs" id="#mylink">

答案 2 :(得分:0)

使用jQuery,你可以使用

$(document).ready(function() {
   if((navigator.userAgent.match(/iPhone|iPod/))) {
       $("#mylink").prop("href", <istore link>)  
   } else {
       $("#mylink").prop("href", "http://google.com")
   }
});

你的锚标签是

<a href="#" id="mylink"></a>

我没有测试过,但应该是正确的

修改 虽然我已经提出足够的基础来解决它。

答案 3 :(得分:0)

尝试将Marks文档就绪部分与您当前的代码结合使用。您还可以通过选择firefox和chrome用户代理在您的盒子上测试它,并且JavaScript在桌面浏览器中更容易调试:)

答案 4 :(得分:0)

您的脚本尝试访问尚未加载的DOM元素!

<script>
  if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) 
  {
   document.getElementById('mylink').href = "http://google.com/";
  }
</script>

<a href="#" id="mylink">

<强>解决方案:

  • 重新排序元素:链接标记,然后是脚本标记
  • 推荐:使用DOMContentLoaded
  • 等活动
<script>
  document.addEventListener("DOMContentLoaded", function () {
    if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) 
    {
     document.getElementById('mylink').href = "http://google.com/";
    }
  });
</script>

答案 5 :(得分:0)

在userAgent.match(&#39; iPhone&#39;)中尝试此操作而不是/并且还有使用此脚本的地方,或者它应该位于html中的a-link标记之下,或者将其放在函数中的最佳方式并在body或jquery ready函数的onload函数上调用它们都应该工作......其他一切都很好......谢谢......