【问题标题】:javascript redirect only pc users not mobilejavascript仅重定向PC用户而不是移动用户
【发布时间】:2017-02-04 19:44:51
【问题描述】:

我正在尝试将使用 adblock 的 PC 用户重定向到某个页面。但我不想重定向移动用户。

这是我的代码

<script src="/assets/js/ads.js" type="text/javascript"></script>
//the bait for adblock

<script type="text/javascript">
if(document.getElementById('ElvJCLbfcHDP')){
  alert('Blocking Ads: No');
} else {
  alert('Blocking Ads: Yes');
}

如您所见,这仅显示广告是否被阻止。但我想做的是检查用户是来自移动设备还是 PC,然后仅将 PC 广告拦截用户重定向到某个页面并让移动用户使用网站照原样。

我找到了这个

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
 // some code..
}

但你可以看到它只检测用户是否来自移动设备然后运行代码。我希望它检查用户是否来自 PC 然后运行重定向

【问题讨论】:

    标签: javascript redirect jquery-mobile mobile


    【解决方案1】:

    使用! logical not operator 更改语句

    if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
     // Desktop / pc
    }
    

    【讨论】:

    • 让我试一试
    【解决方案2】:

    不要尝试根据对设备的测试进行重定向。您会花时间更新列表,并想知道为什么您列表中的某些设备会通过。 navigator.userAgent 是出了名的不可靠。

    来自MDN

    已弃用 此功能已从 Web 标准中删除。虽然有些浏览器可能仍然支持它,但它正在处理中 被丢弃。尽可能避免使用它并更新现有代码; 请参阅本页底部的兼容性表以指导您的 决定。请注意,此功能可能随时停止工作。

    NavigatorID.userAgent 只读属性返回用户代理 当前浏览器的字符串。

    规范要求浏览器通过以下方式提供尽可能少的信息 这个字段尽可能。永远不要假设这个属性的价值 在同一浏览器的未来版本中将保持不变。 尽量不要 完全使用它,或仅用于当前和过去版本的 浏览器。新浏览器可能会开始使用相同的 UA 或其中的一部分,如 一个旧的浏览器:你真的不能保证浏览器代理 确实是这家酒店宣传的那个。

    另外请记住,浏览器用户可以根据需要更改此字段的值(UA 欺骗)。

    通常,桌面可以简单地通过窗口的宽度(以 CSS 像素而不是硬件像素衡量)来根除。

    if(window.innerWidth > 1280){
       location.href = "desktop path";
    } else {
       location.href = "mobile path";
    }
    

    【讨论】:

    • 看起来更可靠。但如果我想先获取价值,然后根据来自 (document.getElementById('ElvJCLbfcHDP')) 的值重定向用户。如果它被阻塞,那么它应该重定向。抱歉,这是我第一次使用 javascript 并且做了很多 google.but 需要尽快修复它
    • @NawafGantare 查看我的更新答案。它从来都不可靠。
    • 我不介意所有那些欺骗和东西。因为它只是一个广告拦截器脚本,我只是想尽快完成它。这就是我想做的http://pastebin.com/raw/BTkPJ4vj我想检查元素存在。如果是,则什么也不做,如果不存在且屏幕尺寸大于 1280,则将用户重定向到该页面。这样,即使他们阻止广告,也只会重定向 pc 用户而不是移动用户。你可以请帮我修复代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    相关资源
    最近更新 更多