【问题标题】:Load external JS only on desktops and not on mobile devices仅在台式机上加载外部 JS,而不在移动设备上加载
【发布时间】:2014-10-21 00:15:42
【问题描述】:

我正在使用一个外部 JS 插件,它在移动设备上加载非常缓慢,并且只想在桌面上加载它。

我的JS代码是这样的

<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-53a4066858ab24f0"></script>

我阅读了herehere 给出的答案,但我不知道如何为外部 JS 文件执行此操作。任何想法如何做到这一点?

我尝试了这个,但它也从桌面版本中删除了,尽管加载了脚本(使用 Chrome 开发工具中的网络资源进行监控)。

<script>
    (function ($) {
        if ($(window).width() >= 768) {
            url = '//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-53a4066858ab24f0';
            $.getScript(url);
        }
    })(jQuery);
</script>

【问题讨论】:

  • 这里的答案:stackoverflow.com/questions/15732847/… am_ 不符合您的需求?
  • @EphiGabay 我用我尝试过的答案编辑了我的问题。
  • 定义“桌面”。 the Acer Aspire Switch 10 算不算? the Microsoft Surface Pro 3 怎么样?如果没有,为什么不呢?
  • @PaulD.Waite 我对所谓的“桌面”并不挑剔。这是一个社交分享插件,如果丢失,它不会真正影响网站的功能。只要从大多数移动设备上删除它,我的问题就解决了。
  • @YinYang:好东西,但这并不能消除定义“移动设备”是什么的需要。

标签: javascript mobile


【解决方案1】:

我相信这样的事情对你有用:

<script>
var isDesktop = (function() {
  return !('ontouchstart' in window) || !('onmsgesturechange' in window);
})();
window.isDesktop = isDesktop;
if( isDesktop ){ url = '//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-53a4066858ab24f0';
                 $.getScript(url);  
               }
</script>

在这里找到:Load jQuery script in desktop browser, but not mobile 通过特拉维斯J

【讨论】:

  • 那行不通。尽管加载了脚本,它也会从桌面版本中删除它。
  • @YinYang:就好像你和帕特里克还没有就“桌面”的含义达成一致。
猜你喜欢
  • 1970-01-01
  • 2013-08-08
  • 2021-10-17
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 1970-01-01
相关资源
最近更新 更多