gpt4 book ai didi

javascript - 仅在 iPad 上禁用 javascript 代码

转载 作者:行者123 更新时间:2023-11-28 00:09:28 25 4
gpt4 key购买 nike

我的页面中有一个相当大的脚本,它似乎会使我的网站在 iPad 上崩溃。它是一个间隔运行的垂直图像轮播,涉及5个功能。我可以删除脚本,然后网站在 iPad 上加载正常,但轮播不再工作(在 iPad 上没问题)。

如何在 iPad 上禁用此脚本?

我尝试使用这个:http://davidwalsh.name/detect-ipad

基本上:

<script>
var isiPad = navigator.userAgent.match(/iPad/i);

if ( !isiPad ) {
//large script goes here with multiple functions
}

</script>

我是否需要将每个单独的函数包装在“if (!isiPad ){}”中?有什么方法可以仅在所使用的设备不是 ipad 的情况下允许整个脚本运行?

预先感谢您的帮助!

完整的脚本可以在这里看到:https://jsfiddle.net/hf9tf7rs/

最佳答案

你的想法是对的!几乎任何解决此问题的方法都将涉及使用 JS 来检测设备或相关浏览器功能并设置一个标志(例如 isiPad),您可以在代码中使用该标志来打开/关闭相关代码位.

但是,有几件事可能会稍微改进这种方法:

  1. 如果您能够准确识别 iPad 上轮播的具体情况,您也许能够识别出一项需要 isiPad 条件的功能。例如,如果某处有 $('#carousel').initCarousel() 调用,只需将该调用包装在条件中即可!如果轮播代码分散在代码库中,请查看是否无法以某种方式重构它以创建一个可以放置 isiPad 检查的瓶颈。初始化 block 是一个很好的选择。如果没有看到您的代码,我无法提供更具体的信息,但如果您发现自己重复 if (!isiPad) {} block 超过 2-3 次,请将其视为危险信号,寻求解决方案它的更中心位置。

  2. 如果您可以确定 iPad 浏览器/带宽/CPU/GPU 的哪个功能导致了问题,您可能需要使用 Modernizr ( http://modernizr.com/ ) 或类似的功能检测库来解决其他类似设备上的这个问题。看似 iPad 的错误经常会在其他移动平板电脑上重现,并且仅检查 /iPad/i 可能会使该错误在其他设备上继续存在。

关于javascript - 仅在 iPad 上禁用 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31031573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com