如果用户在iOS设备上,隐藏HTML元素?

我想让代码检查一个用户是否在iOS设备上,然后如果他们不隐藏HTMLinputtypes“播放”button。

所以,在我的代码中,我敢肯定,如果我的iOS检查是错误的,隐藏“播放”button,或两者的代码:

<!DOCTYPE html> <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript"> var iOS = false, p = navigator.platform; if( p === 'iPad' || p === 'iPhone' || p === 'iPod' ) { iOS = true; } if (iOS === false) { $("input").hide(); } </script> <script type="text/javascript"> function load() { var vid = document.getElementById('vid'); vid.addEventListener('ended', function() { /* alert('video ended'); */ /* vid.load(); */ },false); } </script> <title>NEW ENTRY TEST</title> </head> <body> <body onload="load();"> <video id="vid" src="http://awp.diaart.org/ali/test/movies/testmovie.mov" width="640" height="480" autoplay></video> <br> <input type="submit" value="Play" onclick="document.getElementById('vid').play();"> </body> </body> </html> 

基本上我只想要这个播放button来显示,只有当用户在iOS设备上。

我知道这不起作用,因为播放button仍然显示在常规(非iOS)计算机上。

好奇听到任何人对此的想法。

jsFiddle这里的例子。

首先,它应该被包装在$(document).ready

 $(document).ready(function(){ var iOS = false, p = navigator.platform; if( p === 'iPad' || p === 'iPhone' || p === 'iPod' ) { iOS = true; } if (iOS === false) { $("input[type=button]").hide(); } }); 

现在,您留下的唯一潜在问题就是使用navigator.platform进行检查的情况。

根据规范, navigator.platform返回以下值之一:“ Win32 ”,“ Linux i686 ”,“ MacPPC ”,“ MacIntel ” – 其中没有任何一个符合您的检查案例。

然而 ,互联网上的其他来源似乎表明 ,它确实在各自的设备上返回“iPhone”,“iPad”等。 由于我不拥有这些设备之一,所以我无法testing这个理论。 但是,如果它没有按照build议工作,还有其他logging的方式来检测iPhone,iPad和iPod – 请参阅使用jQuery检测iPad用户?

一旦你testing了一个检测所有三个iOS产品的解决scheme,把它存储在你的pvariables中,你的代码应该按照你的意愿工作。


附注:

  1. 你应该只有一个<body> ,并且可以把两个独立的<script>合并成一个。
  2. 您不需要<!DOCTYPE html><html> 。 删除<html>
  3. <input>应该被用在<form>
  4. 我也改变了input的types从submitbutton
  5. 正如@better_use_mkstemp提到的,在这个用例中,我看不到你的<input>需要autoplay属性(特别是你不希望它可以在iOS设备上播放)。

更新的HTML:

 <body onload="load();"> <video id="vid" src="http://awp.diaart.org/ali/test/movies/testmovie.mov" width="640" height="480" autoplay></video> <br> <input type="button" value="Play" onclick="document.getElementById('vid').play();"> </body> 

尝试取出if (p =='iPad')语句,然后查看是否隐藏了它。 如果是这样,那就意味着它是以iOS设备的forms读取平台的。