如何获得这个:"如果移动设备不在shopify上运行此javascript(purechat)"?

时间:2016-02-01 19:48:45

标签: javascript shopify

我一直在寻找答案并尝试了很多选择,但没有任何效果。

所以,我试图在移动设备上禁用Pure Chat

Pure Chat Code:

<script type='text/javascript' 
     data-cfasync='false'>

    window.purechatApi = {
      l: [],
      t: [],
      on: function() {
        this.l.push(arguments);
      }
    };
    (function() {
      var done = false;
      var script = document.createElement('script');
      script.async = true;
      script.type = 'text/javascript';
      script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript';
      document.getElementsByTagName('HEAD').item(0).appendChild(script);
      script.onreadystatechange = script.onload = function(e) {
        if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
          var w = new PCWidget({
            c: 'b935f3c9-9b39-4746-8080-c4b0ac74963d',
            f: true
          });
          done = true;
        }
      };
    })();

</script>

你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

检测页面是否在移动设备上运行是一件非常棘手的事情。 您可以在related question here

中详细了解相关信息

如果您选择最受欢迎的解决方案,您可以通过以下方式实现您想要的目标:

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) === false) {
    // not mobile device, 
    // initialise pure chat here
}

免责声明:此解决方案取决于用户代理字符串,这不是最可靠的,因为用户可以轻松更改。但在这种特殊情况下,这是一个合理的解决方案。

答案 1 :(得分:0)

只需在theme.liquid或styles.scss.liquid

中添加以下行

@media (max-width: 799px){.purechat{display:none !important;}}

根据需要调整max-width。这将加载脚本,但会将其隐藏在宽度小于800px的任何屏幕上。