jQuery:仅针对 Safari

     2023-03-14     205

关键词:

【中文标题】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视频和音频远程连接到本地对... 查看详情