在javascript中检测iPad而不使用用户代理?
我有一个javascript代码,我不希望它在iPad上运行。在javascript中检测iPad而不使用用户代理?,javascript,jquery,ipad,user-agent,browser-detection,Javascript,Jquery,Ipad,User Agent,Browser Detection,我有一个javascript代码,我不希望它在iPad上运行。 有没有一种方法可以在不使用用户代理的情况下使用javaScript检测iPad 比如说,在css中使用设备宽度 @media only screen and (device-width: 768px) {/* For general iPad layouts */} 提前感谢, R您可以使用该媒体查询,它有点粗糙,但您可以将样式属性设置为预定义元素(例如,您的身体),使用javascript读取并响应它 HTML头 @media
有没有一种方法可以在不使用用户代理的情况下使用javaScript检测iPad 比如说,在css中使用设备宽度
@media only screen and (device-width: 768px) {/* For general iPad layouts */}
提前感谢,
R您可以使用该媒体查询,它有点粗糙,但您可以将样式属性设置为预定义元素(例如,您的身体),使用javascript读取并响应它 HTML头
@media only screen and (device-width: 768px) { #tester { border-color: #f00; } }
HTML正文
<body>
<div id="tester" style="display: none"></div>
虽然有点粗糙,但是如果你真的想这样做的话,你可以把它整理一下;但我更喜欢检查用户代理;) 导航器平台是否算作用户代理字符串?您可以使用:
var is_iPad = navigator.platform.indexOf("iPad") != -1 ;
如果没有测试功能和找到一些仅适用于iPad的独特组合(并希望在每个新版本之间保持相对一致),那么如果不通过javascript测试UA,就无法可靠地检测特定设备。即使这样,UA也可以更改。为什么不想使用用户代理进行测试呢?您可以使用CSS媒体查询为某些隐藏元素提供一个不同的“z索引”值,该值取决于查询成功与否。然后你可以用“.css()”检查样式……当有这样奇怪的限制时,我总是有点困惑。@Brad用户代理测试是非常复杂的。现在,当你只寻找一台设备时,也许不是。。除了哎呀!现在有两台iPad!还有很多其他的平板电脑,没有理由对这些用户(钱包里有真金白银)与iPad用户区别对待。实际上不会起作用-你需要使用“.currentStyle”,而不是“.style”,这只在IE中有效。但是,您的基本方法将起作用——可以让jQuery完成获取当前样式的工作。
var is_iPad = navigator.platform.indexOf("iPad") != -1 ;