如果用户在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,把它存储在你的p
variables中,你的代码应该按照你的意愿工作。
附注:
- 你应该只有一个
<body>
,并且可以把两个独立的<script>
合并成一个。 - 您不需要
<!DOCTYPE html>
和<html>
。 删除<html>
。 -
<input>
应该被用在<form>
。 - 我也改变了input的types从
submit
到button
。 - 正如
@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读取平台的。
- 如何在iOS中自动播放媒体> = 4.2.1 Mobile Safari?
- WebCore :: UserGestureIndicator :: processingUserGesture中的EXC_BAD_ACCESS(SIGSEGV)
- Video.js在iOS上的文件加载期间暂停
- 需要在ios7 +中修正头文件
- 在iOS应用程序中预先填充UIWebView的HTML5脱机appcache
- 有没有办法使用worklight 6.2或phonegap混合应用程序从Android和iOS的另一个应用程序启动一个应用程序?
- 我如何在HTML5的应用程序caching中存储50MB的video?
- 使用mp3元数据或HTML在iPhonelocking屏幕上显示图稿和曲目名称
- 如何擦除,清除,擦除保存在iPad上的主屏幕上的Web应用程序的HTML 5 localstorage?