仅在iPad上禁用javascript代码

仅在iPad上禁用javascript代码,javascript,performance,ipad,if-statement,conditional,Javascript,Performance,Ipad,If Statement,Conditional,我的页面中有一个相当大的脚本,它似乎正在破坏我在iPad上的网站。这是一个垂直的图像传送带,按间隔运行,包含5个功能。我可以删除脚本,然后网站可以在iPad上正常加载,但旋转木马不再工作(在iPad上也可以) 如何在iPad上禁用此脚本 我试着用这个: 基本上: <script> var isiPad = navigator.userAgent.match(/iPad/i); if ( !isiPad ) { //large script goes here with multi

我的页面中有一个相当大的脚本,它似乎正在破坏我在iPad上的网站。这是一个垂直的图像传送带,按间隔运行,包含5个功能。我可以删除脚本,然后网站可以在iPad上正常加载,但旋转木马不再工作(在iPad上也可以)

如何在iPad上禁用此脚本

我试着用这个:

基本上:

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

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

</script>

var isiPad=navigator.userAgent.match(/iPad/i);
如果(!isiPad){
//这里的大型脚本包含多个函数
}
我是否需要将每个单独的函数包装为“if(!isiPad){}?如果使用的设备不是ipad,我是否有办法只允许整个脚本运行

提前感谢您的帮助


完整的脚本可以在这里看到:

另一个用户事先询问过。 考虑到这一点,您可以执行以下操作:

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

if ( !isiPad ) {

    // Append the new <script> tag to <head>
    var head = document.getElementsByTagName('head')[0];
    var js = document.createElement("script");

    js.type = "text/javascript";
    js.src = "insert-source-path-here.js";

    head.appendChild(js);

}
</script>

var isiPad=navigator.userAgent.match(/iPad/i);
如果(!isiPad){
//将新标记附加到
var head=document.getElementsByTagName('head')[0];
var js=document.createElement(“脚本”);
js.type=“text/javascript”;
js.src=“在此处插入源路径.js”;
头.附肢儿童(js);
}

你的想法是对的!这个问题的任何解决方案都需要使用JS来检测设备或相关的浏览器功能,并设置一个标志(如
isiPad
),你可以在代码中使用它来打开/关闭相关的代码位

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

  • 如果你能准确地识别出在iPad上运行的旋转木马是什么,那么你就可能只识别出一个需要
    isiPad
    条件的功能。例如,如果有
    $(“#旋转木马”)。initCarousel()
    在某个地方调用,只需将一个调用包装在一个条件中,您就完成了!如果旋转木马代码分散在代码库中,请查看您是否能够以某种方式对其进行重构,以创建一个瓶颈,在这里您可以进行isiPad检查。初始化块是一个很好的选择。如果不查看您的代码,我无法更具体地说,但是如果你发现自己重复
    如果(!isiPad){}
    块超过2-3次,把它当作一个红旗,为它寻找一个更中心的位置

  • 如果您能确定iPad浏览器/带宽/CPU/GPU的哪个功能导致了问题,您可能需要使用Modernizer()或者一个类似的功能检测库来解决其他类似设备上的此问题。看起来是iPad bug的东西在其他移动平板电脑上非常频繁地重复出现,并且只有检查
    /iPad/i
    可能会在其他设备上留下该bug


  • 啊。我想可能是——好奇…