关键词:
【中文标题】jQuery:仅针对 Safari【英文标题】:jQuery: Target ONLY Safari 【发布时间】:2011-10-14 12:19:06 【问题描述】:我正在使用这段 jQuery 代码来定位 Safari:
if ($.browser.safari)
$('#div1').css('margin-top': '-22px');
$('#div2').css('margin-top': '-17px');
奇怪的是,它还针对 Chrome(至少是 Mac 版本)。我可以使用哪些 jQuery 代码来忽略 Chrome 并仅针对 Safari?
我将不胜感激专家的建议。
【问题讨论】:
不幸的是,事实并非如此。我有一些东西在 Chrome 中显示得很好,而在 Safari 中却一团糟。 【参考方案1】:(编辑使 Chrome 不能在用户代理中):
(Edit2 因为 Chrome for iOS 在其用户代理中使用“CriOS”而不是“Chrome”):
if (
navigator.userAgent.indexOf('Safari') != -1 &&
navigator.userAgent.indexOf('Chrome') == -1 &&
navigator.userAgent.indexOf('CriOS/') == -1
)
//i.e. apply safari class via jquery
附:您应该考虑使用Feature Detection 根据当前浏览器的功能更改您的网站,而不是检查您必须定期更新的用户代理。
【讨论】:
不,它也针对 Chrome。希望您能提供更多想法。 Chrom 的 userAgent 是 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13, Safari 的 userAgent 是 Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21。 1。也许你应该这样做:if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1)
完美。最后一个建议正是我所需要的:以 Safari 为目标并以 Chrome 为目标。谢谢你,伍尔夫。
它没有在 iPhone 上的 Chrome 中验证。给予成功。有什么解决办法吗?
Chrome for iOS 的名称中有“CriOS/”。因此,只需验证 UserAgent 中也不存在“CriOS/”。无论如何,问题/评论来自 2011 年。如今,您展示了使用特征检测而不是针对特定用户代理 :)【参考方案2】:
if (navigator.userAgent.indexOf('Safari') && !navigator.userAgent.indexOf('Chrome'))
// Yep, it's Safari =)
else
// Nope, it's another browser =(
【讨论】:
唉,那也是 Safari / Chrome。我需要的是只针对 Safari 的代码。有什么建议吗? 我编辑了它,可能是在你打字的时候:)。再试一次;)! 谢谢!非常有帮助,并证实了我几秒钟前从 Wulf 那里学到的东西。投票赞成。【参考方案3】:特征检测优于浏览器嗅探,但我确实在 SO 上找到了这个解决方案:
Detect Safari using jQuery
【讨论】:
不鼓励链接到文章而不在您自己的答案中提供解决方案。 @Seano 你能把我链接到相关指南吗? 啊,你链接到了一篇 SO 文章。我的错。【参考方案4】:试试这个:
$.browser.safari = ( $.browser.safari && /chrome/.test(navigator.userAgent.toLowerCase()) ) ? false : true;
我更喜欢这个,因为您正确设置了 jQuery 属性,然后可以在其他地方使用它,而无需经常检查 userAgent。
【讨论】:
【参考方案5】:这可以很好地知道浏览器是否是 Safari。
if(navigator.userAgent.indexOf('Safari') !=-1 && navigator.userAgent.indexOf('Chrome') == -1)
alert('its safari');
else
alert('its not safari');
【讨论】:
jQuery 包含 |仅针对第一个祖先
】jQuery包含|仅针对第一个祖先【英文标题】:jquerycontains|targetonlyfirstancestor【发布时间】:2011-05-2015:23:39【问题描述】:我试图在一个包含许多测试表的HTML页面中定位并最终设置一个字符串的样式,在这个示例BLA中。例如HTML页... 查看详情
仅针对 iPad 和 iPhone 的特定样式表
】仅针对iPad和iPhone的特定样式表【英文标题】:TargetingSpecificStyleSheetsonlyforiPadandiPhone【发布时间】:2015-10-1405:07:19【问题描述】:由于移动设备(iPhone和iPad)的Safari浏览器不完全支持Tahoma字体,因此只想为iPhone和iPad设置Arial字... 查看详情
仅针对在模板生成的 html 列表中单击的项目的 Jquery 切换(可见/不可见)
】仅针对在模板生成的html列表中单击的项目的Jquery切换(可见/不可见)【英文标题】:Jquerytoggle(visible/invisible)foronlytheitemclickedoninatemplate-generatedhtmllist【发布时间】:2012-12-1314:27:57【问题描述】:代码<ul>%foriteminlis%<li>&... 查看详情
css仅定位safari(代码片段)
正则表达式仅在 Safari 上失败
】正则表达式仅在Safari上失败【英文标题】:RegexfailsonlyonSafari【发布时间】:2021-03-0512:08:12【问题描述】:我有以下简单的电子邮件验证正则表达式:/(.+)2,@(.+)2,\\.(.+)2,/这在Firefox、Chrome等上运行良好,但在Safari上失败。为什么... 查看详情
为啥我的代码仅在 Safari 桌面上运行缓慢?
】为啥我的代码仅在Safari桌面上运行缓慢?【英文标题】:Whyismycodeslowinsafaridesktoponly?为什么我的代码仅在Safari桌面上运行缓慢?【发布时间】:2021-02-0805:02:13【问题描述】:我正在构建一个使用一些动画/库的网站,AOS、simplePar... 查看详情
iOS 共享扩展仅在 Safari 中显示
】iOS共享扩展仅在Safari中显示【英文标题】:iOSShareExtensionOnlyShowsinSafari【发布时间】:2015-11-2608:37:30【问题描述】:我正在测试我正在为iPhone应用构建的iOS共享扩展。共享扩展仅出现在Safari的共享表中。它不会出现在像AlienBlue... 查看详情
仅 Safari 的 CSS3 背景位置问题
】仅Safari的CSS3背景位置问题【英文标题】:CSS3background-positionissuewithSafarionly【发布时间】:2013-05-0816:01:08【问题描述】:以下代码在IE9、FireFox、Chrome中呈现良好,但在Safari中则不行:.search-choiceposition:relative;background-clip:padding-bo... 查看详情
在 IOS Safari 上使用 Select (Dropdown) 的 JQuery 显示/隐藏问题
】在IOSSafari上使用Select(Dropdown)的JQuery显示/隐藏问题【英文标题】:JQueryshow/hideissueusingSelect(Dropdown)onIOSSafari【发布时间】:2017-08-0210:46:29【问题描述】:我正在努力解决这个问题,并到处寻找有效的答案。据我所知,该问题仅适... 查看详情
仅 iPad 的横向 Safari 媒体查询
】仅iPad的横向Safari媒体查询【英文标题】:iPadonlymediaqueriesforsafariinlandscape【发布时间】:2018-05-1906:14:12【问题描述】:使用CSS时,我可以使用css将我的元素与Chrome正确对齐。在chromeinspector->ipadview中,一切看起来都应该如此。... 查看详情
navigator.mediaDevices.enumerateDevices() 仅返回 Safari 上的默认设备?
】navigator.mediaDevices.enumerateDevices()仅返回Safari上的默认设备?【英文标题】:navigator.mediaDevices.enumerateDevices()onlyReturnsDefaultDevicesonSafari?【发布时间】:2018-07-1717:52:07【问题描述】:在Firefox和Chrome上,navigator.mediaDevices.enumerat 查看详情
在 Safari 而不是 webView 上仅打开特定 URL
】在Safari而不是webView上仅打开特定URL【英文标题】:OpeningOnlySpecificURLSonSafariinsteadofwebView【发布时间】:2017-03-0609:41:54【问题描述】:我正在开发一个基于Web的应用程序,它只包含一个webView,代码如下:-(BOOL)webView:(UIWebView*)webVi... 查看详情
Safari 网络检查器仅显示源、控制台和审核
】Safari网络检查器仅显示源、控制台和审核【英文标题】:SafariwebinspectorisonlyshowingSources,ConsoleandAudit【发布时间】:2020-07-1217:46:39【问题描述】:升级到Xcode11.3.1后,我在iOS12.1模拟器中使用Safari网络检查器时遇到问题。每次我在... 查看详情
ios7safari的地址栏用jquery怎么隐藏?
做了一个web应用,以前没升级到ios7的时候可以隐藏safari的地址栏,但是升级到ios7之后safari的地址栏没有办法隐藏了。谁有成功解决的案例,可否给一个?js或jquery的scrollTo可以达到类似的效果。但不适合模拟APP(类手机应用)的... 查看详情
强制用户仅在 ios Safari 中打开我的网站
】强制用户仅在iosSafari中打开我的网站【英文标题】:Forceusertoopenmywebsiteiniossafarionly【发布时间】:2014-05-0116:54:21【问题描述】:我有一个专用于iOS设备的UDID检索网站,必须在移动safari中打开才能下载.mobileconfig配置文件。我正... 查看详情
Safari 中针对不同 iOS 设备的不同主体(Cordova/phonegap)
】Safari中针对不同iOS设备的不同主体(Cordova/phonegap)【英文标题】:differentbodyinsafarifordifferentiOSdevice(Cordova/phonegap)【发布时间】:2014-07-0207:52:18【问题描述】:我正在使用cordova/phonegap开发一个只有横向的游戏。游戏在适合屏幕... 查看详情
“脚本错误。” window.onerror 中的错误仅在 Safari 中
】“脚本错误。”window.onerror中的错误仅在Safari中【英文标题】:"ScriptError."errorsinwindow.onerrorinSafarionly【发布时间】:2018-02-0107:54:49【问题描述】:我收到“脚本错误”。在window.onerror中捕获错误时,即使在S3上正确(我... 查看详情
WebRTC connectionState 停留在“new” - 仅适用于 Safari,适用于 Chrome 和 FF
】WebRTCconnectionState停留在“new”-仅适用于Safari,适用于Chrome和FF【英文标题】:WebRTCconnectionStatestuckat"new"-Safarionly,worksinChromeandFF【发布时间】:2021-05-1404:29:49【问题描述】:我无法通过WebRTC视频和音频远程连接到本地对... 查看详情