当谈到 js 时,我很高兴并且很欣赏这些建议。
我正在尝试仅定位Safari并为ID添加一个类......但它无法正常工作。 请参阅下文。
if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
document.getElementById('menu-main-menu').className += ' menu-main-menu-safari';
}
答案 0 :(得分:0)
您的代码是正确的。
想要证明吗?
在Safari上右键单击此S.O。网页中的“问题”橙色按钮和“检查元素”
然后在控制台上粘贴以下代码:
if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
document.getElementById('nav-questions').className += ' menu-main-menu-safari';
}
这正是你的代码execpt我将id更改为橙色“问题”按钮之一。
您将在浏览器检查器中看到添加到按钮元素的类。
因为代码是正确的,可能你有一些css类属性的问题(或者只是元素id错误)。
附注:我最近不得不处理Safari和Chrome中的一些问题(错误)。
我理解需要特定于浏览器的补丁。
只需整理代码,以便在浏览器修复后轻松删除补丁。由于补丁可能不再需要或更糟糕 - 导致不当行为。
答案 1 :(得分:-1)
您可能不会喜欢这样,但浏览器检测错误,这是user agent mess的原因。相反,您应该使用功能检测,可能使用Modernizr。