javascript - 为移动和桌面加载不同的 JS

标签 javascript java php adsense

我试图在用户滚动时使用 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 中使用条件检查窗口大小,然后使用 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)

关于javascript - 为移动和桌面加载不同的 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67359249/

相关文章:

php - 显示两个定义的用户组的我的内容

php - Laravel/Lumen:View::share() 替代方案?

javascript - 在移动设备上可玩的简单 HTML5 游戏使用什么

javascript - Javascript 中的凯撒密码

javascript - 如何检索树面板的节点?

java - SWT 应用程序 : Java heap space: java. lang.OutOfMemory

java - 如何将已排序的索引映射回我正在排序的集合的原始索引

java - 在Auth0 java安全api中,如何更新app_metadata

php - 如何计算不同的日期时间戳并根据固定百分比过滤条目?

php - 为在另一个网页中加载的网页添加后退按钮