【问题标题】:Mobile device detection on TumblrTumblr 上的移动设备检测
【发布时间】:2015-11-12 22:56:31
【问题描述】:

我正在尝试制作一个 Tumblr 主题,如果用户在 iOS 上(带有应用商店链接)将显示一个 div,如果用户在其他任何东西上(带有另一个链接)则显示一个 div。但是,由于 Tumblr 的工作方式,我无法弄清楚为什么它不起作用。我尝试使用https://www.mattcromwell.com/detecting-mobile-devices-javascript/,这是考虑到 Wordpress 编写的,但我不太明白我在 tumblr 中缺少什么。

<script type="text/javascript">
    var isMobile = { 
    iOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, 
    any: function() { return (isMobile.iOS();} };
</script>

是我在 head 标签中的内容。然后,我需要在页脚中进行实际检测,我有

<p id="is-mobile" class="hide">This is a Mobile Device</p>
<p id="is-desktop" class="hide">This is NOT a Mobile Device</p>
<script type="text/javascript"> 
    jQuery(function($) {
         if (!isMobile.iOS())
             $('#is-mobile').addClass('show');
         if (isMobile.iOS())
             $('#is-desktop').addClass('show');
    });
</script>

也许我把另一个 jQuery 放在了错误的地方?我也导入了 jQuery 库。希望有人可以帮助我!当我这样做时,无论设备如何,它都不会显示任何 div(显然,因为我将它们隐藏了 - 而且我在 css 中有一个不显示 .hide 类的东西)。

有什么想法吗?

【问题讨论】:

  • 看起来这里的第一个括号是一个杂散的:return (isMobile.iOS();。

标签: javascript jquery html css tumblr


【解决方案1】:

正如@Shikkediel 指出的,iOS 功能似乎存在问题。

我做了这个小提琴。我还认为可能需要反转条件(至少现在桌面上的 div 显示在桌面上,而移动设备上的 div 仅显示在移动设备上)。

https://jsfiddle.net/lharby/fvau9vnz/

这是代码:

var isMobile = { 
    iOS: function() { 
        return navigator.userAgent.match(/iPhone|iPad|iPod/i)
    }, 
    any: function() { 
        return (isMobile.iOS())
    } 
};

jQuery(function($) {
    if (isMobile.iOS()){ // we should only need an if/else here now. Changed from !isMobile.iOS(); 
        $('#is-mobile').addClass('show');
    }else{
        $('#is-desktop').addClass('show');
    }
});

【讨论】:

  • 非常感谢,终于解决了。非常感谢!
【解决方案2】:

Tumblr 允许自定义 CSS,不是吗?

您可以根据设备屏幕大小进行选择,因此您不必依赖用户代理(可以是 spoofed 和/或有时不工作)。

类似这样的东西(CSS):

#is-mobile{ /* Hide it by default */
    display:none;
}
@media screen and (max-width: 500px){
    #is-mobile{ /* If the screen is <= 500px, display it */
        display:block;
    }
}

我不太熟悉 Tumblr 的工作原理,但这是我在普通网页设计中检测移动设备的方式。

对于基于每个设备的媒体查询,check this out。

More info on the css @media rule

【讨论】:

  • 这当然是一个更好的方法。最初,我阅读了这个问题,因为 OP 出于某种原因想要专门针对 iOS 用户。在 tumblr 中,您必须覆盖默认的移动布局,但这只是一个开关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2020-12-09
  • 2010-11-20
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多