【问题标题】:Load different JS for Mobile and Desktop为移动和桌面加载不同的 JS
【发布时间】:2021-07-25 07:02:58
【问题描述】:

我正在尝试使用 JS 在用户滚动时加载广告代码。 代码是:

<script type='text/javascript'>//<![CDATA[ var la=!1;window.addEventListener("scroll",function(){(0!=document.documentElement.scrollTop&&!1===la||0!=document.body.scrollTop&&!1===la)&&(!function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(e,a)}(),la=!0)},!0);//]]></script>

现在,我想要,上面的 JS 应该只为移动设备加载, 对于桌面,它应该加载:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

我会感谢你的努力。

【问题讨论】:

    标签: javascript java php adsense


    【解决方案1】:

    在你的javascript中使用条件检查窗口大小,然后使用javascript设置脚本标签,根据条件设置相关属性和内容,然后附加你的头部。

    let mediaBreakpointSize = 600; /* Change this size and test outcome */
    
    let scriptTag = '';
    
    if (document.documentElement.clientWidth < mediaBreakpointSize) {
    
      scriptTag = document.createElement("script");
    
      let content = '//<![CDATA[ var la=!1;window.addEventListener("scroll",function(){(0!=document.documentElement.scrollTop&&!1===la||0!=document.body.scrollTop&&!1===la)&&(!function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(e,a)}(),la=!0)},!0);//]]';
      
      scriptTag.setAttribute('type', 'text/javascript');
      
      scriptTag.defer = true;
      
      scriptTag.textContent = content;
      
      document.head.appendChild(scriptTag);
      
    } else {
    
      scriptTag = document.createElement("script");
    
      scriptTag.async = true;
    
      scriptTag.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
    
      document.head.appendChild(scriptTag);
    }
    
    console.log(scriptTag)

    【讨论】:

    • 为什么你的答案末尾有那个 标签?
    • 不小心把它放在那里了。
    • 不工作...对于桌面它工作正常。但对于移动端它不是
    • 当我将 BreakPoint 减少到 100 时,它甚至适用于移动设备,但不适用于 onscroll
    • 嗯,在 Mozilla 和 Chrome 都设置为移动设备上的响应式显示模式下工作。当您说它不起作用时,您是在谈论脚本标签本身更改为条件中媒体的正确脚本吗?
    猜你喜欢
    • 2019-05-14
    • 2018-11-11
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 2019-08-19
    • 2013-10-28
    相关资源
    最近更新 更多